gab*_*sch 360
在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
Run Code Online (Sandbox Code Playgroud)
在爪哇,在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
Run Code Online (Sandbox Code Playgroud)
Kos*_*Kos 71
在C中,整数(对于32位机器)是32位,其范围从-32768到+32767.
错误.以2的补码表示的32位有符号整数的范围为-2 31到2 31 -1,等于-2,147,483,648到2,147,483,647.
izo*_*ica 18
32位整数范围从-2,147,483,648到2,147,483,647.但是,您使用32位计算机并不意味着您的C编译器使用32位整数.
Joh*_*ode 14
C语言定义指定各种数据类型的最小范围.因为int,该最小范围是-32767到32767,这意味着int必须至少为 16位宽.实现可以自由地提供int具有相应更宽范围的更宽类型.例如,在我使用的SLES 10开发服务器上,范围是-2147483647到2137483647.
还有一些系统,在那里,使用16位int类型(所有的世界是不是一个VAX 86),但也有使用32位充足的int类型,也许使用64位等等.
C语言旨在运行在不同的体系结构上.Java被设计为在隐藏这些架构差异的虚拟机中运行.
海报将他们的java类型混淆了.在java中,他的C in是一个短的:short(16位)= -32768到32767 int(32位)= -2,147,483,648到2,147,483,647
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
在Java的严格当量int是long int在C.
编辑:如果int32_t已定义,则它在精度方面是等效的.long int保证java的精度int,因为它保证至少32位大小.
那是因为在32位机器上的C - 整数并不意味着32位用于存储它,它也可能是16位.它取决于机器(取决于实现).
小智 5
它实际上很容易理解,您甚至可以使用谷歌计算器来计算它:int 有 32 位,而计算机是二进制的,因此每个位可以有 2 个值(点)。如果计算 2^32,您将得到 4,294,967,296。所以如果你把这个数字除以 2(因为其中一半是负整数,另一半是正整数),那么你会得到 2,147,483,648。这个数字是32位可以表示的最大int,不过如果你注意的话你会发现2,147,483,648比2,147,483,647大1,这是因为其中一个数字代表0,不幸的是,它正好在中间2^ 32 不是奇数,因此中间不是只有一个数字,因此正整数少一个密码,而负整数则得到完整的一半 2,147,483,648。
就是这样。这取决于机器而不是语言。
| 归档时间: |
|
| 查看次数: |
866454 次 |
| 最近记录: |