转自:http://qimo601.iteye.com/blog/1423666
1、C和C++都没有提供二进制数的表达方法。
2、C,C++语言中,如何表达一个八进制数呢?
如果这个数是 876,我们可以断定它不是八进制数,因为八进制数中不可能出7以上的阿拉伯数字。但如果这个数是123、是567,或12345670,那么它是八进制数还是10进制数,都有可能。
所以,C,C++规定,一个数如果要指明它采用八进制,必须在它前面加上一个0,如:123是十进制,但0123则表示采用八进制。
int 0123;
这就是八进制数在C、C++中的表达方法。但是有一个例外就是转意符'\'。
因为C,C++规定不允许使用斜杠加10进制数来表示字符,所以 :
?' //ASCII值是63
'\077' //是8进制表示'?',0可以省略,因为C,C++规定不允许使用斜杠加10进制数来表示字符
'\0x3F' //是16进制表示'?'
3、 C,C++规定,16进制数必须以 0x开头
int 0x15A
其中的x也也不区分大小写。(注意:0x中的0是数字0,而不是字母o)。
注:
1) 8进制和16进制只能用达无符号的正整数,如果你在代码中里:-078,或者写:-0xF2,C,C++并不把它当成一个负数。