关于大端模式读数的问题

沤江一流 2014-01-27 04:12:11
对于这么一串数0000:0000 68 10 a7 00 8b 01 70 00-16 00 a9 03 8b 01 70 00
有数0x1068 MS-DOS大端模式,10h为高位 68h为低位,所以
0000:0000 68 10 a7 00 8b 01 70 00-16 00 a9 03 8b 01 70 00..... 左边是地址高位,右边是地址低位?
要如何理解?
为什么 68 10 读出来是1068h?
...全文
131 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-01-27
  • 打赏
  • 举报
回复
推荐使用WinHex软件查看硬盘或文件或内存中的原始字节内容。
赵4老师 2014-01-27
  • 打赏
  • 举报
回复
电脑内存或文件内容只是一个一维二进制字节数组及其对应的二进制地址; 人脑才将电脑内存或文件内容中的这个一维二进制字节数组及其对应的二进制地址的某些部分看成是整数、有符号数/无符号数、浮点数、复数、英文字母、阿拉伯数字、中文/韩文/法文……字符/字符串、汇编指令、函数、函数参数、堆、栈、数组、指针、数组指针、指针数组、数组的数组、指针的指针、二维数组、字符点阵、字符笔画的坐标、黑白二值图片、灰度图片、彩色图片、录音、视频、指纹信息、身份证信息……
赵4老师 2014-01-27
  • 打赏
  • 举报
回复
0000:0000 68 10 a7 00 8b 01 70 00-16 00 a9 03 8b 01 70 00 ..... 表示从内存地址0000:0000处开始有16个字节68 10 a7 00 8b 01 70 00 16 00 a9 03 8b 01 70 00 因为是以小端模式保存,所以 0000:0000处开始的两个字节68 10可以看作是一个4位十六进制数0x1068,其中0x10为高字节,0x68为低字节, 0000:0000处开始的四个字节68 10 a7 00可以看作是一个8位十六进制数0x00a71068,其中0x00a7为高字,0x1068为低字。 如果是以大端模式保存,那么 0000:0000处开始的两个字节68 10可以看作是一个4位十六进制数0x6810,其中0x68为高字节,0x10为低字节, 0000:0000处开始的四个字节68 10 a7 00可以看作是一个8位十六进制数0x6810a700,其中0x6810为高字,0xa700为低字。 2位十六进制,即 8位二进制为一个字节。 4位十六进制,即16位二进制为一个字。 8位十六进制,即32位二进制为一个双字。
图灵狗 2014-01-27
  • 打赏
  • 举报
回复
是6810h,小端模式才是1068h。
引用 楼主 mounty_fsc 的回复:
对于这么一串数0000:0000 68 10 a7 00 8b 01 70 00-16 00 a9 03 8b 01 70 00 有数0x1068 MS-DOS大端模式,10h为高位 68h为低位,所以 0000:0000 68 10 a7 00 8b 01 70 00-16 00 a9 03 8b 01 70 00..... 左边是地址高位,右边是地址低位? 要如何理解? 为什么 68 10 读出来是1068h?

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧