c++ 进制问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 20:08:54
#include <iostream> //包含iostream.h头文件
using namespace std;
int main()
{
//声明变量,并初始化
int a=011,b=10,c=0X10;

//以十进制形式显示数据
cout<<"DEC:";
cout<<" a="<<a;
cout<<" b="<<b;
cout<<" c="<<c<<endl;

system("pause");

return 0;
}
为什么a=011与a=11 导致程序显示的 结果不同?
呵呵 学习了
那能不能问下
二进制或者其他进制 该怎么别表示?

数制表示
十进制数:前面不加任何附加 例如:12,12.5等

八进制数:C,C++规定,一个数如果要指明它采用八进制,必须在它前面加上一个0,例如 011。

十六进制:C,C++规定,16进制数必须以 0x开头。比如 0x1表示一个16进制数。

您遇到的问题是 a=011 给的是八进制数,而a=11给的十进制数11

编译器认为11就是int型数据存入
但是前面加一个0,编译器就认为是八进制数,也就是显示的9
前面加一个0x就表示16进制数。

其他的就没有什么特殊的了,二进制一般用char数组来做。

int a=011 当然是把10进制的11付给a 前面的0不起作用

a=011 , 011是八进制数,相当于十进制9, a=9