int 占一个机器字长

int与short int是不一样的。

C++标准规定,int占一个机器字长。在32位系统中int占32位,也就是4个字节,

而在老式的16位系统中,int占16位,即2个字节。

而C++标准中只限制规定short int不能超过int的长度,具体长度的可以由C++编译器的实现厂商自行决定。目前流行的32位C++编译器中,

通常int占4字节,short int占2字节。其中short int可以简写为short。类似地,C++标准只限制了long int不得小于int的长度,具体也没有作出限制。

应该和CPU构架和编译系统有关吧。呵呵。
这个问题我也很模糊!!!

我的32位机器VC++结果是

短整形short int = 16 位 = 2 字节
整形int = 32 位 = 4 字节
长整形long int = 32 位 = 4 字节
单精度float = 32 位 = 4 字节
双精度double = 64 位 = 8 字节
长整形双精度long double = 64 位 = 8 字节
字符型char = 8 位 = 1 字节
无符号字符型unsigned char = 8 位 = 1 字节
有符号字符型signed char = 8 位 = 1 字节
无符号整形unsigned int = 32 位 = 4 字节
有符号整形signed int = 32 位 = 4 字节
无符号长整形signed long int = 32 位 = 4 字节

在TC2.0中

short int = 16 Bit = 2 Byte
int = 16 Bit = 2 Byte
long int = 32 Bit = 4 Byte
float = 32 Bit = 4 Byte
double = 64 Bit = 8 Byte
long double = 80 Bit = 10 Byte
char = 8 Bit = 1 Byte
unsigned char = 8 Bit = 1 Byte
signed char = 8 Bit = 1 Byte
unsigned int = 16 Bit = 2 Byte
signed int = 16 Bit = 2 Byte
signed long int = 32 Bit = 4 Byte

tc的
long double = 80 Bit = 10 Byte
vc++的
long double = 64 位 = 8 字节

差了2个字节

我总结应该是和编译系统有关,编译系统根据机器定义。
还要遵循short int <= int <= long int 吧

int 占一个机器字长

时间: 2024-10-10 17:25:25

int 占一个机器字长的相关文章

存储单位介绍:位、字节、(字)机器字长 捋顺他们的关系

真实看着看着就晕了,还是自己没有完全弄清楚,特此整理. 从小到大讲解: 1.  位 bit :最小的存储单位(可以容纳0和1其中之一) 2.  字节 byte :常用的计算机存储单位.1字节 =  8 位(这是字节的标准定义) 3   字 word :即机器字长,是自然的存储单位.计算机是多少位的,一个字就又多少位.(如64位的机器,一个机器字长就是64位) 版权声明:本文为博主原创文章,未经博主允许不得转载.

一个int占多少个字节?

最近在一本有关代码审计的书上看到如上解释.这里很好的解释了int到底应该占多少个字节. 而且从他的角度来看是编译器去适应平台.所以真正决定int占多少字节取决于你的device platforms. 其实无论哪种模型short和char无论哪种model下都保持一致. 我们见得最多的就是ILP32LL模型.这种模型下int和long已经pointer占4个字节 long long占8个字节. PS:这个表很容易记,中间的数字表明你是64bit还是32bit的机器.前面的I表示int,L表示lon

第一章 &nbsp; 机器字长

1.     首先要知道各类型所占字节,才能知道你所需要定义的变量的类型. #include<stdio.h> int main() { printf("char所占字节数为%d\n",sizeof(char)); printf("short所占字节数为%d\n",sizeof(short)); printf("long所占字节数为%d\n",sizeof(long)); printf("long long所占字节数为%d\

机器字长 存储字长 指令字长 数据字长

机器字长:CPU一次能处理数据的位数,通常与CPU的寄存器位数有关.存储字长:存储器中一个存储单元(存储地址)所存储的二进制代码的位数,即存储器中的MDR的位数.指令字长:计算机指令字的位数.数据字长:计算机数据存储所占用的位数. 注:冯诺依曼机中,指令和数据同等重要,都存放在存储器中,并可按地址寻访. 通常早期计算机:存储字长 = 指令字长 = 数据字长.故访问一次便可取一条指令或一个数据,随着计算机应用范围的不断扩大,三者可能各不相同,但它们必须是字节的整数倍. 计算机中信息存储单位 计算机

机器字长 32位与64位的区别

1.64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而32bit只支持4G内存 2.64位CPU一次可提取64位数据,比32位提高了一倍,理论上性能会提升1倍.但这是建立在64bit操作系统,64bit软件的基础上的 3. 32位/64位处理器指的是CPU在同一时间内能处理的数据位数(8位=1B),机器字长一般是指参加运算的寄存器所含有的二进制数的位数,它代表了机器的精度. 如 某计算机字长32位,存储容量8MB.按字编址,其寻址范围为 8MB字节=8*1024*1024*8位.所

一开始看到Int16, Int32, Int64这三种类型就觉得有点怪, 为什么要整个数字结尾的, 挺怪的. 昨天互相想到, ms这么干就是想让大家一眼就知道这个数据类型占多大空间吧. Int8, 等于byte, Int16, 等于short, 占2个字节. -32768 32767 Int32, 等于int, 占4个字节. -2147483648 2147483647 Int64

一开始看到Int16, Int32, Int64这三种类型就觉得有点怪, 为什么要整个数字结尾的, 挺怪的. 昨天互相想到, ms这么干就是想让大家一眼就知道这个数据类型占多大空间吧. Int8, 等于byte, Int16, 等于short, 占2个字节. -32768 32767 Int32, 等于int, 占4个字节. -2147483648 2147483647 Int64, 等于long, 占8个字节. -9223372036854775808 9223372036854775807

机器字长,存储字长,字节

字节:一个字节有8位,譬如一个二进制数1001001 就刚好是8位,其中的每个1或者0都代表一位,8个组合起来的长度就是8位, 也就是一个字节 存储字长:一个存储单元中存放数据的长度,内存按照一个个存储单元来编号,给定一个内存单元地址 返回该单元中的数据,也就是一个返回一个存储字长,有8位,16位,32等.如果一列火车相当于整个内存,那么存储单元就是每个车厢,车厢的床位数就是存储字长 每次进出都是整个车厢人一起进出.有的火车车厢是8个床位,有的是16个床位等,因此如果存储字长越大,每次取数据也就

辨析:机器字长、存储字长、指令字长和操作系统位数

辨析:机器字长.存储字长.指令字长和操作系统位数 机器字长 > ### 是表示一个数据所需要的二进制代码位数 存储字长 是存储单元中的二进制代码位数,即一个存储单元中所包含的存储元个数 (通常情况下默认机器字长与存储字长相等) 指令字长 是指机器指令中二进制代码的总位数.指令字长取决于从操作码的长度.操作数地址的长度和操作数地址的个数 (指令字长一般都取存储字长的整数倍,如果指令字长等于存储字长的2倍,就需要2次访存来取出一条指令,因此取指周期是机器周期的2倍,若指令周期等于存储字长,则取指周期

一个机器绑两个IP可能存在的问题

1.同一网段两个ip 无法绑到一个机器上. 因为会生成两条该网段路由,两个路由用于同网段报文相应,而实际ip选路时只会选择其中一条路由(估计会选择前面那一条)从一个网卡走.这样不管哪个网卡来的局域网内ip的报文在回复时总会从一个网卡出去.这样另一侧就可能看到发给ipa报文收到ipb的响应. 2.不同网段两个ip可以绑在一个机器上.但倘若这两个网段还有其他路相通(比如中间有个网关zz),可能服务异常. 比如配置xipa和yipb.xipc访问xipa和yipd访问yipb都是OK的.但倘若xipc