![[衰]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_34.cf5b4d5.png)
## 为什么buffer使用16进制来表示
比如:
const buffer = Buffer.from('Hello, World!', 'utf8');
console.log(buffer); // 输出: <Buffer 48 65 6c 6c 6f 2c 20 57 6f 72 6c 64 21>
每个16 进制数字可以表示4 位二进制数,而1 个字节包含 8 位二进制数。因此,两个十六进制字符刚好表示 1 个字节。
详细解释:
十六进制的基本特性:
十六进制使用 0 到 F 来表示 16 个数值:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F。
每个十六进制数字可以表示的范围是 0 到 15,相当于二进制的 0000 到 1111,也就是 4 位二进制数。
二进制与十六进制的关系:
1 个字节 = 8 位二进制(bit)。
因为 1 个十六进制数字表示 4 位二进制数(bit),所以用两个十六进制数字就能表示 8 位,也就是 1 个字节。
假设你有一个字节的二进制数据:11001010。
可以将这个 8 位二进制分为两组,每组 4 位:
1100 和 1010。
分别对应的十六进制值是:
1100 对应 C,
1010 对应 A。
因此,11001010 用十六进制表示就是 CA。
使用16进制会更简洁易读,如果使用二进制显示相同的数据会显得冗长,比如字母 H 的二进制是 01001000,但用 16 进制表示就是 48,更加简洁易读。
另外使用16进制也是标准惯例:在显示计算机处理的低级数据时(如内存地址、网络传输、文件存储),16 进制是最常用的表示方式。尤其是在处理二进制数据时,如网络数据包、文件内容或缓冲区(Buffer)数据时,使用 16 进制可以帮助开发者快速读取和分析。
比如:
const buffer = Buffer.from('Hello, World!', 'utf8');
console.log(buffer); // 输出: <Buffer 48 65 6c 6c 6f 2c 20 57 6f 72 6c 64 21>
每个16 进制数字可以表示4 位二进制数,而1 个字节包含 8 位二进制数。因此,两个十六进制字符刚好表示 1 个字节。
详细解释:
十六进制的基本特性:
十六进制使用 0 到 F 来表示 16 个数值:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F。
每个十六进制数字可以表示的范围是 0 到 15,相当于二进制的 0000 到 1111,也就是 4 位二进制数。
二进制与十六进制的关系:
1 个字节 = 8 位二进制(bit)。
因为 1 个十六进制数字表示 4 位二进制数(bit),所以用两个十六进制数字就能表示 8 位,也就是 1 个字节。
假设你有一个字节的二进制数据:11001010。
可以将这个 8 位二进制分为两组,每组 4 位:
1100 和 1010。
分别对应的十六进制值是:
1100 对应 C,
1010 对应 A。
因此,11001010 用十六进制表示就是 CA。
使用16进制会更简洁易读,如果使用二进制显示相同的数据会显得冗长,比如字母 H 的二进制是 01001000,但用 16 进制表示就是 48,更加简洁易读。
另外使用16进制也是标准惯例:在显示计算机处理的低级数据时(如内存地址、网络传输、文件存储),16 进制是最常用的表示方式。尤其是在处理二进制数据时,如网络数据包、文件内容或缓冲区(Buffer)数据时,使用 16 进制可以帮助开发者快速读取和分析。
展开
评论
点赞