为了账号安全,请及时绑定邮箱和手机立即绑定

系统1字节=8位?

系统1字节=8位?

C++ C
慕慕森 2019-07-12 10:05:52
系统1字节=8位?我一直在读像这样的句子不要依赖1字节的8位大小使用CHAR_BIT而不是8作为在位和字节之间转换的常量。等等。今天有什么真实的生活系统,这是正确的吗?(我不确定C和C+在这方面是否存在差异,或者是否实际上是语言不可知论。如有需要,请稍候。)
查看完整描述

3 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

在旧机器上,小于8位的代码是相当常见的,但大多数代码已经死了很多年了。

C和C+已授权a最小值8位char,至少可以追溯到C89标准。[编辑:例如,C90,§5.2.4.2.1要求CHAR_BIT>=8和UCHAR_MAX>=255。C89使用不同的节号(I)相信(第2.2.4.2.1节),但内容相同]。他们将“char”和“字节”视为本质上的同义词[编辑:例如,CHAR_BIT描述为:“非位字段(字节)的最小对象的位数”]。

然而,目前的机器(主要是DSP)的最小类型大于8位-至少12、14甚至16位是相当常见的。WindowsCE也是如此:它最小的类型(至少是微软的编译器)是16位。他们有然而,治疗char作为16位,他们采用了(不符合)的方法,就是不支持名为char完全没有。


查看完整回答
反对 回复 2019-07-12
?
潇湘沐

TA贡献1816条经验 获得超6个赞

除非您正在编写在DSP上有用的代码,否则您完全有权假定字节是8位。所有的世界都可能不是VAX(或Intel),但全世界都必须进行通信、共享数据、建立通用协议等等。我们生活在建立在octets上的协议之上的互联网时代,任何没有字节的C实现都将很难使用这些协议。

同样值得注意的是,POSIX和Windows都有(和授权)8位字节。这涵盖了100%有趣的非嵌入式机器,现在大部分非DSP嵌入式系统也是如此。


查看完整回答
反对 回复 2019-07-12
  • 3 回答
  • 0 关注
  • 510 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信