计算机里比特位字节位的左右顺序和我们现实生活中的数字写法的左右顺序的对比

Posted Silentdoer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机里比特位字节位的左右顺序和我们现实生活中的数字写法的左右顺序的对比相关的知识,希望对你有一定的参考价值。

此文仅适用我自己。

首先明确一个概念:bit是比特的意思;byte是字节的意思。bit没有比特位的意思,比特位的全称应该是bit position;而字节位则是byte position。

叫法:最高位比特、最高位字节。还有就是下标(index)位(position)两个概念(位的说法是高低,下标/下标值的说法是大小;位左边是最高,下标右边是最大)。

正文:

现实生活中我们写数字一般都是从最高位最低位;即210这个数字,2是最高位(百位),0是最低位(个位)。

对于数组或List而言,元素的写法则是 arr[0]写在最左边,arr[arr.Length-1]写在最右边,即下标最小的arr[0]写在最左边,下标最大的arr[arr.Length-1]写在最右边。

计算机里当下标和位这两个概念同时出现时,我个人经常会搞混;故在此自我定义一番:

当 数组/List 中存有相关联的 比特集/字节集 时(如arr[0]存的是long变量ll的某个字节值,arr[1]同样存的是该变量ll的另一个字节值):

我自己 arr[0] 存的是变量ll的个字节(最左边),arr[1]存的是变量ll的第二个字节,依次类推(这里要用第的概念,而不要用高低位的概念);这种存法虽然也存在不符合现实习惯的地方,即:

第一个字节是最低位字节,故我最左边本来该存最高位的,却存的是最低位,而右边是按数字的写法本该是最低位的却存的是最高位字节。(一定要谨记要用 第N个字节 的概念,而不要用高/低位字节的概念);这么存还有一个

容易让人误解的地方就是最左边是最低位字节,最右边是最高位字节,但是将这些字节单独提出来,我又应该将字节的8比特位由左到右看成为最高比特位到最低比特位。

Flag:写数组或List元素时,从左往右则是list[0]、list[1]、。。。。、list[list.Count-1](这个应该不容易搞混,毕竟初始化数组的语句是这样 var arr = new []{"m", "n", "q"};而arr[0]的值是"m")。

总结:其实我应该这么想:计算机存储实际上是“从左往右“分别是最低位比特、到最高位比特和“从左往右”是最低位字节到最高位字节。只是“我们人”将这些值表现在书面/可视处的时候习惯于从左往右分别的是最高位比特到最低位比特(字节亦如此)。

以上是关于计算机里比特位字节位的左右顺序和我们现实生活中的数字写法的左右顺序的对比的主要内容,如果未能解决你的问题,请参考以下文章

什么是低字节高字位,高字节低字位

字,位,字节,bit,二进制位的意思和关系

字和字节和位的关系

字位与字节的区别?

5、 啥是位?啥是字节?一个字节有几位?哪个是表示计算机中的基本编码单位?

字节与位的关系