问:
不同类型的数据在32位和64位系统中所占据的字节长度是不是一样的?
chatgpt答:
不同类型的数据在32位和64位系统中所占据的字节长度通常是相同的,但是整型数据类
型可能会有所不同。
在通常情况下,以下是常见数据类型在32位和64位系统中的字节长度:
- char:在32位和64位系统中通常占用1字节。
- short:在32位和64位系统中通常占用2字节。
- int:在32位系统中通常占用4字节,在64位系统中通常占用8字节。
- long:在32位系统中通常占用4字节,在64位系统中通常占用8字节。
- float:在32位和64位系统中通常占用4字节。
- double:在32位和64位系统中通常占用8字节。
在实际编程中,建议使用`sizeof`操作符来确定不同数据类型在具体系统中所占据的字
节长度。
我后来又在CSDN查了一下:
C语言标准是这样规定的:int最少16位(2字节),long不能比int短,short不能比int
长,具体位长由编译器开发商根据各种情况自己决定。在32位x86处理器上,short、in
t、long普遍的长度是2字节、4字节、4字节。当然如果编译器开发商愿意,long完全可
以是8字节。
在 win64 下,long 也是 32 bit 的,4 字节。int则是64bit,8字节!
32位平台:
char 1个字节8位
short 2个字节16位
int 4个字节32位
long 4个字节
long long 8个字节
指针 4个字节
64位平台:
char 1个字节
short 2个字节
int 4个字节
long 8个字节(区别)
long long 8个字节
指针 8个字节(区别)
--
FROM 111.193.238.*