关于语言的进制整常量问题~~麻烦高手指点迷津

来源:百度知道 编辑:UC知道 时间:2024/05/22 13:05:46
在程序中是根据前缀来区分各种进制数的。因此在书写常数时不要把前缀弄错造成结果不正确。4.整型常数的后缀在16位字长的机器上,基本整型的长度也为16位,因此表示的数的范围也是有限定的。十进制无符号整常数的范围为0~65535,有符号数为-32768~+32767。八进制无符号数的表示范围为0~0177777。十六进制无符号数的表示范围为0X0~0XFFFF或0x0~0xFFFF。如果使用的数超过了上述范围,就必须用长整型数来表示。长整型数是用后缀“L”或“l”来表示的。例如:
十进制长整常数 158L (十进制为158) 358000L (十进制为-358000)
八进制长整常数 012L (十进制为10) 077L (十进制为63) 0200000L (十进制为65536)
十六进制长整常数 0X15L (十进制为21) 0XA5L (十进制为165) 0X10000L (十进制为65536)
怎么转换带有后缀的数??例如为什么八进制长整常数 012L 转化为十进制为10

012 = 1 * 8 + 2 = 10,第一个0是前缀,表示8进制,最后L是后缀。

研究下位权吧……
012 2的位全是8的0次方 =1
1的位权是8的1次方 =8
所以012 = 1*2+8*1

如果是0123的话 就是1×3+8×2+64×1

L为长整型数后缀
八进制012的十进制为10