16进制的单位有哪些-编码调试中常用各类计量标识

16进制的单位有哪些-编码调试中常用各类计量标识

当初对着代码界面翻来翻去,愣是没理清16进制的单位有哪些,连着好几天敲代码都卡在数值转换这一步,身边同事路过扫了两眼,随口提了几句常用的叫法,才勉强捋顺了一部分内容,也总算不用每次都对着文档一点点翻找基础定义。

最先接触到的是位。

平时写底层程序的时候,最常拿位来做基础计量,不管是二进制还是十六进制,位都是最小的单元,单个十六进制字符刚好对应四个二进制位,一开始总记混对应关系,对着对照表一遍遍地换算,敲一行数值就停下来核对一遍,有时候赶项目进度,嫌来回对照麻烦,干脆直接把换算关系写在便签贴在显示器边上,久而久之才算慢慢熟练,也明白这个基础单位在各类进制里都是通用的存在,不管数据格式怎么变,最底层的计数规则从来不会改动。

再往上就是字节,这也是接触频次最高的单位,一个标准字节由八个二进制位组成,换算成十六进制的话,正好能拆成两个十六进制字符,平时查看文件编码、解析网络报文的时候,页面上标注的数值基本都会以字节为单位展示,刚开始分不清位和字节的区别,统计数据长度时频频算错,改了好几次参数才把两者的界限分清。

其实不少人会混淆字和字节的概念,在涉及十六进制数据读取的场景里,字也是经常被提到的单位,不同运行环境里一个字对应的位数并不统一,有的环境里一个字等于两个字节,也就是四个十六进制字符,有的老旧程序里定义又不一样,之前接手旧项目的时候,就因为没留意环境差异,读取出来的数据全部乱码,折腾半天才找到问题根源。

顺着单位往上走,还能见到双字、四字这类叫法,大多出现在汇编语言或者硬件调试的场景里,双字就是两个字,对应的十六进制字符数量也跟着翻倍,调试硬件寄存器参数那回,界面上满满当当都是十六进制数值,旁边标注的单位一会是字节一会是双字,盯着屏幕看久了,视线都容易发花,只能一段一段拆分数据慢慢核对。

还有半字节这个说法。

半字节算是比较小众的叫法,说白了就是四个二进制位,刚好等价于单个十六进制字符,早期做简单的单片机程序开发时,不少简易指令集里会直接用半字节来描述数据单元,日常做软件开发很少用到,也就接触底层硬件相关内容时才会碰到,当时也是偶然翻到老资料,才记下来这个不常露面的单位,之后很少有机会再用到它。

关掉调试窗口,伸手揉了揉发酸的眼睛,随手把桌角皱巴巴的便签纸捡起来叠好塞进抽屉。

了解更多百科知识请访问 百科