以下所列的C语言整形常量中,不正确的是

概念:整形常量就是整常数:有八进制,十进制和十六进制三种 。

A.125

B.0976

C.76L

D.0x1ff

(不正确的是:选B

A.125    是十进制。0-9范围,正确

B.0开头 是八进制。0-7范围,每个位置不能超过7

C.L结尾 是十进制的长整型。十进制0-9范围,正确

D.0x开头是十六进制。数字(0-9)字母(a,b,c,d,e,f)范围,正确

)

以0作为八进制的数的前缀,用于区分十进制(如:八进制:015 即8+5=13 换算为十进制的13。而若去掉前缀0,那么15表示八进制,还是十进制呢?于是必须用前缀来区分进制,0不能乱放前缀,它是重大意义的作用 )

  • 8,10,16进制都可正负号表示
  • 前缀0表示8进制,0X表示十六进制。

①十进制常数:十进制常数没有前缀0。其数码为0~9。

错误表示:​​​​​​​023(前缀不能有0)  即0是0,但23不是023。023是八进制

八进制整常数:八进制整常数必须以0开头。不能带负号

错误表示 : 234(无前缀0)

                 0976(含非八进制数码:9)

                 076A(含非八进制数码:A)

③十六进制整常数:十六进制整常数的前缀为0X或0x。

数字取值10个为0~9,字母取值6个为(a,b,c,d,e,f)即:A~F或 a~f。

错误表示 : 3B (无前缀0X)

                  0X3K (含非十六进制数码K)。 

 ④长整型数是用后缀“L”或“l”表示。 c编译系统将为它分配4个字节存储空间

为什么有长整型?

十进制长整常数:10L (十进制为10)

八进制长整常数: 012L (十进制为10)

十六进制长整常数: 0XaL (十进制为10)

进制的转换看不出来什么区别,它除了后尾多了个L表示长整型,似乎进制之间的转换也没区别。

区别在于内存:使用数的值超过了2个字节的范围,就必须用长整型数来表示。内存存储一个字节为8位,2个字节16位。二进制1111  1111  1111  1111,2*16次方=65536-1,换算成10进制65535。因此当你要存储大于2个字节十进制为65535的数值时, c编译系统将为它分配4个字节存储空间,就要用到长整型数。

0177777(十进制为65535)

16进制:0xFFFF(十进制为65535)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值