C语言之 比特(bit)、字节(Byte)、字(Word)、整数(Int)

在C语言中,经常出现上述的概念,即比特(bit)、字节(Byte)、字(Word)、整数(Int)。查看C语言标准,比特(bit)的定义如下:

即,能存放0或1的存储单元。这是一个抽象的概念。因为,比特(bit)在C语言中并不能直接操作,因为,比特并不是最小的访问(Access)单元,即,没有比特级的寻址(unaddressable)。

而最小的寻址单位是字节(Byte)。其定义如下:

也就是字节(Byte)由特定数量的比特(Bit)所构成,如常见的 8 比特(Bits)构成一个字节(Byte)。 其主要特点是 C语言中的最小寻址单位(addressable)。

整数(Int)在C语言的定义如下:

也就是说其大小由对应的指令集架构(ISA)所定义的。那么,看看 RISCV ISA 对整数的定义如下:

以及:

可见,整数(Int)在 RISCV ISA 中,被定义为由 4 字节组成。

那么,字(Word)的概念就在这些原生类型中抽象出来的,是在语义级(Semantics)上的概念,也就是跟业务逻辑(Business Logic)相关的概念。其由字节(Bytes)所组成,具体多少字节形成一个字(Word),也叫单字(Single World),由其业务逻辑所定义,通常一个字(Word)的大小等于一个整数(Int)。那么,一般来说,对应的有 半字(Half-Word)对应短整数(Short-Int),双字(Double-Word)对应长整数(Long-Int),四字(Quad-Word)对应长长整数(Long Long Int)。

这里,可把字节(Byte)看作英文字母(Alphabet),字(Word)看作英文单词(Word in Vocabulary)。

相关推荐
xxjiaz3 分钟前
移除链表元素--LeetCode
java·算法·leetcode·链表
何包蛋H3 分钟前
Linux 磁盘扩容实战案例:从问题发现到完美解决
linux·服务器·云计算
2301_794461576 分钟前
力扣-盛最多水的容器
算法·leetcode·职场和发展
SylviaW087 分钟前
python-leetcode 68.有效的括号
python·算法·leetcode·职场和发展
熊猫钓鱼>_>9 分钟前
对话即编程:如何用 Trae 的 @智能体 5 分钟修复一个复杂 Bug?
开发语言·python·bug
搏博12 分钟前
WPS JS宏实现去掉文档中的所有空行
开发语言·javascript·wps
cdg==吃蛋糕15 分钟前
selenium webdriver使用
c语言·selenium·测试工具
hie9889417 分钟前
MATLAB中进行语音信号分析
开发语言·matlab·语音识别
眸生26 分钟前
至此(day1-day4)代码详解(ai辅助整理)
c语言·汇编·操作系统·计算机组成原理·显存·i/o外设
xiecoding.cn29 分钟前
string在c语言中代表什么(非常详细)
c语言·string·c语言string·c语言string.h·string.h头文件