1、C语言中整数有几种进制表示方式?使用时要注意哪些问题?
C语言中可以以多种进制表示整数:2进制、8进制、10进制和16进制。每个进制都有其对应的表示方式:2进制以0b开头,例如0b10111110,;8进制以0开头,例如0144表示的是10进制的100;10进制正常表达即可,不需要特殊转换;16进制以0x开头,例如0xFF表示0b11111111。实际使用中,要注意8进制和10进制的表示方式非常接近不要混淆,010和10是不同的两个数,在变量定义中,有时为了格式对齐的需要,可能会无意中将十进制数据写成了八进制数据,如:045(8进制),124(10进制),068(8进制)等等,他们并不是十进制数据:45,124,68。
2、C语言中整数的类型大小如何定义的?使用时要注意哪些问题?
C语言中有3种长度的整数:short型、int型和long型。ANSI虽然没有规定这些类型具体占用几个字节(8bit)大小,但是规定了long型整数长度至少是32bit,short型和int型长度至少16bit,3种类型的整数长度非递减(short <= int <= long)。实际使用(尤其是嵌入式开发)中,不同的环境具体实现不同,要明确这些类型所占空间大小,确保数据满足需要不会发生溢出。我带过的实习生在开发中,就曾发生过拿uint_8数据跟300去比较的情况。
3、在进行整数变换时要注意哪些问题?