【发布时间】:2016-12-18 05:01:27
【问题描述】:
The code below, produces the following output on a serial console
[42][25][f][27][0][0].
我的问题是 - 如果只有串行输出 - 你怎么知道这个数字是 9999?数学是如何工作的?我认为它与小端有关?
int a = 9999;
buf[0] = 'B';
buf[1] = '%';
buf[2] = a&0xff;
buf[3] = (a>>8)&0xff;
buf[4] = (a>>16)&0xff;
buf[5] = (a>>24)&0xff;
【问题讨论】:
-
这不是关于编程,而是数字系统之间的转换,即数学/算法。并且“下面的代码”不会生成任何输出。
-
代码将
a转换成4个字节。为什么要进行 2 字节的十六进制到十进制的转换?
标签: c hex endianness