【操作系统】比特、字节与大端小端

admin 2024年3月13日15:43:10评论2 views字数 1036阅读3分27秒阅读模式
【操作系统】比特、字节与大端小端

引言

【操作系统】比特、字节与大端小端

在深入探讨计算机操作系统的构建和数据处理过程中,我们必须首先理解一些基础概念——比特、字节,以及影响数据读写逻辑的大端小端字节序这篇文章旨在揭示这些基本单元如何定义现代计算的基石,以及它们是如何影响计算机程序的交互与设计。

【操作系统】比特、字节与大端小端

比特

【操作系统】比特、字节与大端小端

比特(bit)是信息的基本单位,每个比特表示一个二进制位,既0或1。

比如,我们学习操作系统时会经常看到这样的序列:10110011,在这个序列中,每个0或1就代表一个比特。在计算机系统和网络通信中,比特是数据传输和处理的基础,所有更高级别的数据结构都是以比特为基础来构建的。

【操作系统】比特、字节与大端小端

字节

【操作系统】比特、字节与大端小端

字(Word)和字节(Byte)是计算机科学中表示数据大小的两种常用单位。

字节是由8个比特组成的数据存储单元,是许多计算机系统中的基本寻址单元。由于它能够表示(2^8 = 256)个不同的值,它常被用来表示一个字符。在许多编程语言和计算机文件系统中,字节是最常见的数据单位之一。

字是指计算机处理器为一次性处理而设计的一组比特。字的大小在不同的计算机架构中可能不同,但它通常是设计中选择的标准数据宽度,并且经常是处理器的本机数据宽度。常见的字大小包括16位、32位以及64位。例如,在32位系统中,一个字就是32位比特的集合。

【操作系统】比特、字节与大端小端

大端小端

【操作系统】比特、字节与大端小端

大端(Big-endian)和小端(Little-endian)是两种不同的字节序(也称为字节序列、字节顺序或尾序),用以指定在跨越多个字节的更大数据单元中,如何排列和存储这些字节。

其中大端和小端分别为:

  • 大端:将高序字节存储在起始地址

  • 小端:将低序字节存储在起始地址

举个例子,大端模式下数值0x12345678在内存中的存储顺序(从低地址到高地址)为:12 34 56 78。小端模式下数值0x12345678在内存中的存储顺序(从低地址到高地址)为:78 56 34 12。

不同的场景下所选择的字节序不同,比如Intel的x86系列CPU采用的都是小端存储,Java的所有程序和所有的网络协议采用的都是大端存储。

为什么有的选择了大端,有的选择了小端?因为大端小端各有优势:

大端优势:CPU做数值运算时从内存中依顺序依次从低位地址到高位地址取数据进行运算,大端会先拿到符号位和高位数值,因此可以更快的判断正负和比较大小。

小端优势:因为其把低地址内存存放了低位数据,因此在做类型转换时更方便,比如将int类型(4字节)转换为short类型(2字节)时,只需要截取前两位地址就可以了。

原文始发于微信公众号(赛博安全狗):【操作系统】比特、字节与大端小端

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月13日15:43:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【操作系统】比特、字节与大端小端https://cn-sec.com/archives/2566321.html

发表评论

匿名网友 填写信息