System where 1 byte != 8 bit?(1 字节!= 8 位的系统?)
问题描述
我一直在读这样的句子
不要依赖 1 个字节的大小为 8 位
don't rely on 1 byte being 8 bit in size
使用 CHAR_BIT
而不是 8 作为常量在位和字节之间转换
use CHAR_BIT
instead of 8 as a constant to convert between bits and bytes
等等.今天有哪些现实生活系统,这适用于哪些地方?(我不确定 C 和 C++ 在这方面是否存在差异,或者它是否实际上与语言无关.如有必要,请重新标记.)
et cetera. What real life systems are there today, where this holds true? (I'm not sure if there are differences between C and C++ regarding this, or if it's actually language agnostic. Please retag if neccessary.)
推荐答案
在较旧的机器上,小于 8 位的代码相当普遍,但其中大部分已经消失多年了.
On older machines, codes smaller than 8 bits were fairly common, but most of those have been dead and gone for years now.
C 和 C++ 已经规定 char
的最少为 8 位,至少可以追溯到 C89 标准..他们将char"和byte"视为本质上是同义词
C and C++ have mandated a minimum of 8 bits for char
, at least as far back as the C89 standard. . They treat "char" and "byte" as essentially synonymous
然而,当前的机器(主要是 DSP)的最小类型大于 8 位——至少 12、14 甚至 16 位是相当常见的.Windows CE 的做法大致相同:它的最小类型(至少对于 Microsoft 的编译器)是 16 位.然而,他们不将 char
视为 16 位 - 相反,他们采用(不符合)的方法,简单地不支持名为 char<的类型/code> .
There are, however, current machines (mostly DSPs) where the smallest type is larger than 8 bits -- a minimum of 12, 14, or even 16 bits is fairly common. Windows CE does roughly the same: its smallest type (at least with Microsoft's compiler) is 16 bits. They do not, however, treat a char
as 16 bits -- instead they take the (non-conforming) approach of simply not supporting a type named char
at all.
这篇关于1 字节!= 8 位的系统?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:1 字节!= 8 位的系统?
基础教程推荐
- 如何定义双括号/双迭代器运算符,类似于向量的向量? 2022-01-01
- C++ 标准:取消引用 NULL 指针以获取引用? 2021-01-01
- C++,'if' 表达式中的变量声明 2021-01-01
- 您如何将 CreateThread 用于属于类成员的函数? 2021-01-01
- 如何在 C++ 中处理或避免堆栈溢出 2022-01-01
- 调用std::Package_TASK::Get_Future()时可能出现争用情况 2022-12-17
- C++ 程序在执行 std::string 分配时总是崩溃 2022-01-01
- 设计字符串本地化的最佳方法 2022-01-01
- 什么是T&&(双与号)在 C++11 中是什么意思? 2022-11-04
- 运算符重载的基本规则和习语是什么? 2022-10-31