C语言中遇到一个数怎么知道它是十进制、八进制、还是十六进制?
比如int 012 ,10 ;怎么前者就是八进制而后者则是十进制呢?
还有int 后面跟的数一定要是十进制吗?
(1)十进制整型常量
这种整型常量只能出现0~9之间的数字,可带正负号,但多个数字的常量不能以0开头!
例如:0 1 321 -76
(2)八进制整型常量
这种整型常量是以数字0开头的八进制数字串。其中,数字为0~7。也就是说没8、9!
例如:0111(十进制73) 011(十进制9)
(3)十六进制整型常量
这种常量是以0x或0X开头的十六进制数字串。其中每个数字可以是0~9、a~f或A~F中的数字或英文字母。
例如:0x11(十进制17) 0Xa5(十进制165)
现实生活你学的就是十进制数,所以在编程的时候只管用十进制数!不要用别的,除非特别要求!
这种整型常量只能出现0~9之间的数字,可带正负号,但多个数字的常量不能以0开头!
例如:0 1 321 -76
(2)八进制整型常量
这种整型常量是以数字0开头的八进制数字串。其中,数字为0~7。也就是说没8、9!
例如:0111(十进制73) 011(十进制9)
(3)十六进制整型常量
这种常量是以0x或0X开头的十六进制数字串。其中每个数字可以是0~9、a~f或A~F中的数字或英文字母。
例如:0x11(十进制17) 0Xa5(十进制165)
现实生活你学的就是十进制数,所以在编程的时候只管用十进制数!不要用别的,除非特别要求!
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-07-03
以0开头的就是8进制如0123
以0x开头的就是16进制如0xabcd
其他没前缀的就是10进制数
int a=10, b=012 , c=0xa
他们值是相等的。
以0x开头的就是16进制如0xabcd
其他没前缀的就是10进制数
int a=10, b=012 , c=0xa
他们值是相等的。
第2个回答 2011-07-03
第一种情况
int a=012,b=12,c=0x12; //第一个12是8进制,第二个12是10进制,第三个12是16进制。
第二种情况
char *p="\12\x12"; //第一个12是8进制,第二个12是16进制。
int a=012,b=12,c=0x12; //第一个12是8进制,第二个12是10进制,第三个12是16进制。
第二种情况
char *p="\12\x12"; //第一个12是8进制,第二个12是16进制。
第3个回答 2011-07-07
同意 lqwangjing