我知道C和C++标准留下了语言实现的许多方面 - 仅仅因为如果存在具有其他特征的体系结构,那么为它编写符合标准的编译器是非常困难或不可能的.
我知道40年前任何电脑都有自己独特的规格.但是,我不知道今天使用的任何架构:
CHAR_BIT != 8
signed
不是两个补充(我听说Java有这个问题).我问的原因是我经常向人们解释C++不强制要求任何其他低级方面如固定大小的类型†.这很好,因为与其他语言不同,它使你的代码在正确使用时可以移植(编辑:因为它可以移植到更多架构而不需要模拟机器的低级方面,例如符号+幅度架构上的二进制补码算法) .但我感到很难过,我自己也无法指出任何特定的架构.
所以问题是:哪些架构具有上述属性?
† uint*_t
s是可选的.
我知道这可能是愚蠢的...但我真的不明白
假设我们有32位地址,所以每个位可以是1或0.
所以总组合等于2 ^ 32
所以我们可以代表2 ^ 32个地址.(没有单位)
但为什么人们总是说32位地址可以代表2 ^ 32字节地址(为什么弹出"字节")?
它不是2 ^ 32*8bits地址吗?为什么人们可以在最后添加"字节"?
我很困惑....谢谢