binary - 关于大端与小端的问题
问题描述
因此,我在斯坦福大学上在线网络课程时遇到了一个问题,测验后提供了答案并附有解释,但我仍然不明白。
问题是,将16 位 53 视为 0x3500(从 dec 到 hex)。这个十六进制值是用 Little Endian 还是 Big Endian 写的?我的答案是 Big Endian,但正确的答案是 Little Endian。
在解释中,他说53是3x16 + 5,所以我们得到0x35。
对我来说,3代表第一个字节128:0 | 64:0 | 32:1 | 16:1
而5代表第二个字节8:0 | 4:1 | 2:0 | 1:1
而且由于第一个字节是先写入的(3 在 5 之前)并且它具有更大的值(最重要),那不应该被视为 Big Endian 而不是 Little Endian 吗?
我相信我的解释中一定有一些误解,所以请随时指出。
解决方案
16 位二进制中的 53 是 0000000000110101
二进制的 0x3500 是 0011010100000000
由于最低有效字节位于最低地址,因此它是小端。这里的误解是您只考虑字节的一半(4 位)而不是完整的字节(8 位)。
推荐阅读
- jquery - 在模式中单击列表项时,更改文本并将活动类添加到另一个列表项
- javascript - 电子画布图像质量降低
- path - 为什么 Windows cmd 中的用户环境变量路径无效?
- c++ - 所有有效的模板都被实例化了吗?
- apache - Oscommerce 到 OpenCart 重定向
- angular - How to access the target of an $event bound to a DOM element using a custom directive?
- python - Travis 未将标记提交部署到 pypi
- html - Wordpress images load crisply on IE but are blurry on chrome?
- python - Importing self-made package
- mysql - 根据表 project_users 中的 user_ID 显示字段