3 回答
TA贡献1848条经验 获得超6个赞
在C语言中,语言本身并不确定某些数据类型的表示形式。它可以因机器而异,在嵌入式系统上int可以是16位宽,但通常是32位。
唯一的要求是short int<= int<= long int按大小。此外,还有一个建议int应该代表处理器的本机容量。
所有类型都签名。该unsigned修改器允许您使用最高位的值(否则它被保留为符号位)的一部分。
以下是可能的数据类型的可能值的简短表:
width minimum maximum
signed 8 bit -128 +127
signed 16 bit -32 768 +32 767
signed 32 bit -2 147 483 648 +2 147 483 647
signed 64 bit -9 223 372 036 854 775 808 +9 223 372 036 854 775 807
unsigned 8 bit 0 +255
unsigned 16 bit 0 +65 535
unsigned 32 bit 0 +4 294 967 295
unsigned 64 bit 0 +18 446 744 073 709 551 615
在爪哇,在Java语言规范确定的数据类型的表示。
顺序是:byte8位,short16位,int32位,long64位。所有这些类型都是签名的,没有未签名的版本。但是,位操作会将数字视为无符号(即正确处理所有位)。
字符数据类型char是16位宽,无符号,并使用UTF-16编码保存字符(但是,可以分配一个char表示无效字符代码点的任意无符号16位整数)
width minimum maximum
SIGNED
byte: 8 bit -128 +127
short: 16 bit -32 768 +32 767
int: 32 bit -2 147 483 648 +2 147 483 647
long: 64 bit -9 223 372 036 854 775 808 +9 223 372 036 854 775 807
UNSIGNED
char 16 bit 0 +65 535
TA贡献1998条经验 获得超6个赞
在C中,整数(对于32位机器)是32位,其范围从-32768到+32767。
错误。以2的补码表示的32位有符号整数的范围为-2 31到2 31 -1,等于-2,147,483,648到2,147,483,647。
添加回答
举报