注册 登录
编程论坛 C++教室

c++进制没有改变什么情况

troyzyc 发布于 2017-03-16 13:02, 2518 次点击
#include<iostream>
#include<climits>
#include<cmath>
int main()
{
    using namespace std;
    int ch=42;
    int wa=0x42;
    int in=042;
    cout<<"ch= "<<ch<<endl;
    cout<<"wa= "<<ch<<"\n";
    cout<<"in= "<<ch<<endl;
    cout<<"chest= "<<ch<<endl;
    cout<<hex;
    cout<<"wa= "<<wa<<endl;
    cout<<oct;
    cout<<"in= "<<in<<endl;
    return 0;
}

为什么我的结果是这样?    不应该是区分8,16进制的吗?为66,34吗?
ch= 42
wa= 42
in= 42
chest= 42
wa= 42
in= 42
Press any key to continue
4 回复
#2
rjsp2017-03-16 13:10
不应该是区分8,16进制的吗?为66,34吗?
你有6个输出,不知道你说的是哪两个? 所以说不相干的代码要少贴。

前面4个都是输出ch,也就是42,这没什么好说的;
第五个以16进制输出0x42,第六个以8进制输出042。
全是42很正常呀。
#3
yuyu124092017-03-16 15:24
前四个是输出的10进制42,第五个是16进制的42,最后一个是8进制的。
虽然都是42,代表的数据大小不一样
#4
troyzyc2017-03-16 18:35
回复 楼主 troyzyc
界面显示的不应该是以十进制的数字吗?即16进制的42显示结果为66,八进制的42显示为34?
#5
weidelong2017-03-18 15:53
应该用
cout<<oct<<x<<dec<<x<<hex<<x<<endl;//oct、dec、hex类似格式控制符,控制其后的变量
1