我使用C语言,在转换整数时遇到了问题。
我想做的是:
我有一个名为:校验和的整数。
我想以十六进制格式转换这个整数,然后只取最后两个数字,并将它们转换回一个dez格式的整数。
示例:
校验和= -864
在十六进制中,这将是: FFFFFFFFFFFFFCA0
最后两个数字是: A0
A0格式是: 160。
我怎么用C语言做这件事?
发布于 2013-02-21 14:36:16
char m_c_end_dec = (char)checksum & 0xff;
int m_end_dec = (int)m_c_end_dec;简单的强制转换将最后一点作为char仅为1位,然后将其重铸回int,给出A0为160。
发布于 2013-02-21 14:35:45
我不知道这与(中间的)十六进制表示法有什么关系(我也不明白你为什么要大喊大叫)。只需取校验和的最后一个字节,并使用适当的格式字符串打印它:
printf("checksum is %d\n", checksum & 0xff);发布于 2013-02-21 14:36:41
或者使用字符串格式。e.g
printf("%02x",校验和)
或用于大写打印(“%02X”,校验和)
https://stackoverflow.com/questions/15004805
复制相似问题