什么是整数常量
展开全部
规范说法应该为整型常量。
1.八进制整常数必须以0开头,即以0作为八进制数的前缀。数码取值为0~7。八进制数通常是无符号数。
以下各数是合法的八进制数:
015(十进制为13) 0101(十进制为65) 0177777(十进制为65535)
以下各数不是合法的八进制数:
256(无前缀0) 0382(包含了非八进制数码) -0127(出现了负号)
2.十六进制整常数
十六进制整常数的前缀为0X或0x。其数码取值为0~9,A~F或a~f。
以下各数是合法的十六进制整常数:
0X2A(十进制为42) 0XA0 (十进制为160) 0XFFFF (十进制为65535)
以下各数不是合法的十六进制整常数:
5A (无前缀0X) 0X3H (含有非十六进制数码)
3.十进制整常数
十进制整常数没有前缀。其数码为0~9。
以下各数是合法的十进制整常数:
237 -568 65535 1627
以下各数不是合法的十进制整常数:
023 (不能有前导0) 23D (含有非十进制数码)
在程序中是根据前缀来区分各种进制数的。因此在书写常数时不要把前缀弄错造成结果不正确。例如,数组int power_of_10[4]={0001,0010,0100,1000}的初值会被解释为{1,8,64,1000}。
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)
长整数158L和基本整常数158在数值上并无区别。但对158L,因为是长整型量,C编译系统将为它分配4个字节存储空间。而对158,因为是基本整型,根据计算机的内部字长和编译器的版本分配2或4个字节的存储空间。因此在运算和输出格式上要予以注意,避免出错。对长整型都表示不了的大数,某些编译器规定可有64位整常数表示,后缀为“LL”或“ll”。有时,因为特殊需要,可能要对短整型进行特殊标记,只有部分编译器支持短整型的后缀“S”或“s”。无符号数也可用后缀表示,整型常数的无符号数的后缀为“U”或“u”。例如:358u,0x38Au,235Lu均为无符号数。前缀,后缀可同时使用以表示各种类型的数。如0XA5Lu表示十六进制无符号长整数A5,其十进制为165。
1.八进制整常数必须以0开头,即以0作为八进制数的前缀。数码取值为0~7。八进制数通常是无符号数。
以下各数是合法的八进制数:
015(十进制为13) 0101(十进制为65) 0177777(十进制为65535)
以下各数不是合法的八进制数:
256(无前缀0) 0382(包含了非八进制数码) -0127(出现了负号)
2.十六进制整常数
十六进制整常数的前缀为0X或0x。其数码取值为0~9,A~F或a~f。
以下各数是合法的十六进制整常数:
0X2A(十进制为42) 0XA0 (十进制为160) 0XFFFF (十进制为65535)
以下各数不是合法的十六进制整常数:
5A (无前缀0X) 0X3H (含有非十六进制数码)
3.十进制整常数
十进制整常数没有前缀。其数码为0~9。
以下各数是合法的十进制整常数:
237 -568 65535 1627
以下各数不是合法的十进制整常数:
023 (不能有前导0) 23D (含有非十进制数码)
在程序中是根据前缀来区分各种进制数的。因此在书写常数时不要把前缀弄错造成结果不正确。例如,数组int power_of_10[4]={0001,0010,0100,1000}的初值会被解释为{1,8,64,1000}。
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)
长整数158L和基本整常数158在数值上并无区别。但对158L,因为是长整型量,C编译系统将为它分配4个字节存储空间。而对158,因为是基本整型,根据计算机的内部字长和编译器的版本分配2或4个字节的存储空间。因此在运算和输出格式上要予以注意,避免出错。对长整型都表示不了的大数,某些编译器规定可有64位整常数表示,后缀为“LL”或“ll”。有时,因为特殊需要,可能要对短整型进行特殊标记,只有部分编译器支持短整型的后缀“S”或“s”。无符号数也可用后缀表示,整型常数的无符号数的后缀为“U”或“u”。例如:358u,0x38Au,235Lu均为无符号数。前缀,后缀可同时使用以表示各种类型的数。如0XA5Lu表示十六进制无符号长整数A5,其十进制为165。
展开全部
一分钟了解整数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
规范的说应该是整型常量吧?
顾名思义,整数型的常量
一个 integer 是集合 Z={...,-2,-1,0,1,2,...} 中的一个数
两边没有边界感觉没错(上面的东西是粘贴的),因为:
其实用汇编语言多大的整数都能表示出来(没深入学过其他语言,不知道其他的能不能),只要内存足够大,并且计算这些超大整数也不是问题
百科里讲的比较明白:
http://baike.baidu.com/view/378399.html?tp=1_11
这种东西任何一本讲电脑语言的书上都应该有(某些讲汇编的书除外)
顾名思义,整数型的常量
一个 integer 是集合 Z={...,-2,-1,0,1,2,...} 中的一个数
两边没有边界感觉没错(上面的东西是粘贴的),因为:
其实用汇编语言多大的整数都能表示出来(没深入学过其他语言,不知道其他的能不能),只要内存足够大,并且计算这些超大整数也不是问题
百科里讲的比较明白:
http://baike.baidu.com/view/378399.html?tp=1_11
这种东西任何一本讲电脑语言的书上都应该有(某些讲汇编的书除外)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询