一个int整数怎么转换成两个字节存储的16进制数,一定要两个字节

I_will_back 2013-05-06 03:06:03
一个int整数怎么转换成两个字节存储的16进制数,一定要两个字节。
...全文
5487 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
starytx 2013-05-06
  • 打赏
  • 举报
回复
引用 9 楼 lin5161678 的回复:
引用 2 楼 starytx 的回复:
是16进制字符串吗?两个字节表示的最大的数是"FF",也就是255,而一个int的范围远超过255,数据会溢出
FFFF 才是2个字节
嗯,说错了,两个字节最大是FFFF = 65535
starytx 2013-05-06
  • 打赏
  • 举报
回复
引用 7 楼 I_will_back 的回复:
引用 4 楼 AfterSeptember 的回复:
[quote=引用 2 楼 starytx 的回复:] 是16进制字符串吗?两个字节表示的最大的数是"FF",也就是255,而一个int的范围远超过255,数据会溢出
用两个字符表示的,比如int a = 200;实际得到的值应该是0x00C8,就是byte b[0] = 0x00,byte b[1] = C8
嗯,差不多是这样。[/quote]牵扯大小端问题,所以memcpy的结果有可能是b[0] = 0XC8,b[1] = 0x00; 如果非要b[0] = 0X00,而b[1] = 0XC8,可以先将结果放在一个char str[5]中,然后再前两位转为b[0],后续两位转为b[1]
   char str[5] = {0};
   sprintf(str ,"%04X" ,n);
   int n = 200;
   BYTE b[2];
   memcpy(b ,&n ,sizeof(b));
lin5161678 2013-05-06
  • 打赏
  • 举报
回复
引用 3 楼 mujiok2003 的回复:
 char buf[9];
  sprintf(buf, "%08x", 13);//0000000d
你一共用了9个字节
lin5161678 2013-05-06
  • 打赏
  • 举报
回复
引用 2 楼 starytx 的回复:
是16进制字符串吗?两个字节表示的最大的数是"FF",也就是255,而一个int的范围远超过255,数据会溢出
FFFF 才是2个字节
snake_xiongyang 2013-05-06
  • 打赏
  • 举报
回复
那太简单了

int32_t lVal;
int16_t m_store[2];
memcpy(m_store,&lVal,sizeof(lVal));
I_will_back 2013-05-06
  • 打赏
  • 举报
回复 1
引用 4 楼 AfterSeptember 的回复:
引用 2 楼 starytx 的回复:
是16进制字符串吗?两个字节表示的最大的数是"FF",也就是255,而一个int的范围远超过255,数据会溢出
用两个字符表示的,比如int a = 200;实际得到的值应该是0x00C8,就是byte b[0] = 0x00,byte b[1] = C8
嗯,差不多是这样。
I_will_back 2013-05-06
  • 打赏
  • 举报
回复
求大神啊。。。。。
未注销 2013-05-06
  • 打赏
  • 举报
回复
引用 4 楼 AfterSeptember 的回复:
引用 2 楼 starytx 的回复:
是16进制字符串吗?两个字节表示的最大的数是"FF",也就是255,而一个int的范围远超过255,数据会溢出
用两个字符表示的,比如int a = 200;实际得到的值应该是0x00C8,就是byte b[0] = 0x00,byte b[1] = C8
maybe是这样。
未注销 2013-05-06
  • 打赏
  • 举报
回复
引用 2 楼 starytx 的回复:
是16进制字符串吗?两个字节表示的最大的数是"FF",也就是255,而一个int的范围远超过255,数据会溢出
用两个字符表示的,比如int a = 200;实际得到的值应该是0x00C8,就是byte b[0] = 0x00,byte b[1] = C8
mujiok2003 2013-05-06
  • 打赏
  • 举报
回复
 char buf[9];
  sprintf(buf, "%08x", 13);//0000000d
starytx 2013-05-06
  • 打赏
  • 举报
回复
是16进制字符串吗?两个字节表示的最大的数是"FF",也就是255,而一个int的范围远超过255,数据会溢出
snake_xiongyang 2013-05-06
  • 打赏
  • 举报
回复
不可能 因为int一般是4个字节 你觉得4个字节怎么样才能存储到2个字节里

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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