32位和64位处理器有什么区别

时间:2014-01-16 18:24:22

标签: 64-bit 32bit-64bit 32-bit

我以非常天真的方式理解32位与64位处理器的关系是: 在32位上,'int'表示为32位但是n 64位处理器,int表示为64位。这样对吗?这是唯一的区别吗?从这种过度简化来看,不清楚为什么64位比32位“更好”。

我的另一个问题是:如果我有一个简单的客户端服务器应用程序(java),其中客户端是32位,服务器是64位,那么在客户端和服务器之间传输数据时是否会导致问题?

1 个答案:

答案 0 :(得分:0)

几乎在每种情况下,CPU为64位的是通用寄存器中的位数,因此是存储器地址中的位数。

可悲的是,C" int"不随CPU大小而变化,也不会与任何其他类型AFAIK的大小不同。

64位和32位(以及16位和8位)CPU可以处理8位,16位,32位和64位整数[和浮点]。他们不能做的是用64位地址寻址存储器[或者在16位和8位CPU的情况下使用32位地址]。

因此,运行客户端或服务器程序的CPU大小无关紧要。如果程序的作者不知道CPU架构问题,那么无关紧要的是,如果没有仔细规范,不同CPU发送的数据可以以不同的顺序发送它们的字节(如64位整数的8字节或浮动) - 点数)和/或假设字节的顺序不同。

我的建议是始终将数据发送到" little endian"顺序,因为只有一个小端序。遗憾的是,有多个版本的大端序,取决于CPU寄存器/地址大小和大于寄存器大小的数据类型的CPU约定。但并非所有人都同意我的观点。