整数常量是直接在程序中使用的数字,如123。整数常量默认为十进制,但可以加上特殊前缀表示为其他进制。
列举几个常见进制如下:
1、十进制,如果一个数没有特定的前缀,则默认为十进制。
2、二进制,以2为基底,只有数字0和1是有效的。
3、八进制,以8为底的进制,只有0到7是有效的字符。八进制数字的前缀是0。
4、十六进制,以16为基底,有效的字符为0到9和A到F。
整型常量是什么?
整型常量分为十进制整型常量、八进制整型常量和十六进制整型常量三
种表示形式。
(1)十进制整型常量
这种常量只能出现 0~9 的数字,且可带正、负号。例如:
0 1 364 28 -34
(2)八进制整型常量
这种常量是以数字 0 开头的八进制数字串。其中数字为 0~7。例如:
0111(十进制 73) 011(十进制 9) 0123(十进制 83)
(3)十六进制整型常量
这种常量是以 0x或 0X开头的十六进制数字串。其中每个数字可以是 0~9、a~f或 A~
F 中的数字或英文字母。例如:
0x11(十进制 17) 0Xa5(十进制 165) 0x5a(十进制 90)
什么是整数常量
规范说法应该为整型常量。
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。
什么是整型常量
整型常量就是整常数,包括从负数到零到正数的所有整数。
所谓N进制就是满N即向前进一位,如二进制表示1、2、3、4、5分别为1、10、11、100、101,八进制表示1、8、16为1、10、20等。
由于计算机是二进制的,所有数据都是以不同的0、1组合存储在单元(存储单元长度由所使用的编译器决定,TC多为为2字节,VC多为4字节)中。所有出现在程序中的整型常量也是以对应的二进制存储,如int a=1,存储为0000000000000001,表示1*2^0=1,int b=17存储为0000000000010001,表示1*2^4+0*2^3+0*2^2+0*2^1+1*2^0=17。
在输入、输出数据时都可以选择不同的进制类型数据,如十进制:直接输如数据(eg:b=17)、输出用%d确定类型;八进制:输入的数据前加一个0(eg:b=017)、输出用%o;十六进制:输入的数据前加0x(eg:b=0x17)、输出用%x。不同的进制方式对应不同的数,如b=17(十进制输入),按照十进制、八进制、十六进制依次输出为17(1*10^1+7*10^0=17),021(2*8^1+1*8^0=17),0xf1(f*16^1+1*16^0=17)。
PS:二进制只有0、1;八进制是0~7;十进制是0~9;十六进制是0~9,a~f,a=10,b=11……f=15。.
整数变量和整数常量有什么区别
整数变量是在整数范围内没有确定值的量;整数常量是在整数范围内有确定值的量。
如:重力是物质的质量和10牛顿/千克的积。
这里的10就是整数常量。而当质量的小数位数不大于1时,重力就是整数变量。因为重要会随着质量的变化而变化,并没有一个确定的值,如当质量为10千克时,重力为100牛;质量为2.5千克时,重力为25牛。
(注:这里借用了重力公式:G=mg。g取10牛顿/千克,有时也取9.8牛顿/千克,为了因应这里的需要,取整数)
C语言里面的常量是什么?
C语言里面的常量是指不会变化的常数或编码,例如圆周率3.14就可以定义为一个常量。
“常量”的广义概念是“不变化的量”,例如:在计算机程序运行时,不会被程序修改的量;数学函数中的某一个量,例如每一个具体的圆的半径、直径数值;物理学中的靠近地面的重力加速度;真空中的光速数值;不同的微粒的各自的质量。
一层含义指它们的编码方法是不变的,但是严格来说“人为规定的某一种方法也可以因地制宜而人为改变,所以其本身数值大小‘不是‘常量’的内涵”。比如字符'A'无论在硬件、软件还是各种编程语言中,它的信息编码即为 “ 0x41”。
扩展资料:
C语言中,常量概念容易存在的错误解释:
在除了“C/C++”的一些高级程序语言中,“常量”可以被称作,“在一个信息变化过程中,始终不发生改变的量”,其可以是不随着时间变化的某些量的固定信息;也可以表示为某一数值的字符(或字符串),常被用来标识、测量和比较两者的差异。
但在 “C/C++语言中”,“常量”如果还用“运行过程中不变的量”来描述,就显得不太准确了,甚至是在具体使用时,这就是一个错误的概念。
在 “C/C++”中,定义“指针常量”时,根据“const ”的位置的不同,可以定义出几个不同的形式,虽然其看起来“符合常量的概念”,但是在实际运行中,其值或地址值是会发生变化的,所以本质还不是“常量概念”。
参考资料来源:百度百科-常量 (编程语言)