如何使用C语言将整数值转换为其相应的十六进制并将其存储在单字节变量中

How can i convert an integer value into its corresponding hex and store it in a single byte variable using C language

本文关键字:单字节 存储 变量 字节 十六进制 整数 语言 何使用 转换      更新时间:2023-10-16

如何使用C语言将整数值转换成相应的十六进制并存储在单字节变量中?

int nVar = 24; // where hex value 0x18
BYTE byRes; 
char sBuff[8] = {0};
sprintf(sBuff, "%x", nVar); 

其中sBuff[0] = 0x30和sBuff[1] = 0x38,但这不是我要找的。我想保存十六进制值的nVar在byRes变量

谢谢

注意,"decimal"或"十六进制"只是数值的表示。换句话说,这些是在屏幕上显示int的不同方式。分配byRes = (BYTE)nVar;会将nVar的值复制给byRes。如果需要,可以将该值显示为十六进制或十进制或以7为基数或以42为基数。现代计算机以电压差的形式存储数据。在机器级别,我们通常认为这些是"高"answers"低"或"0"answers"1"(又称二进制),但在编程级别,我们可以用任何我们想要的方式来考虑这些数值。将一个变量的"十六进制"值赋给另一个变量与将"十进制"值赋给另一个变量是一样的,因为计算机不知道我们如何看待这个值,直到我们要求它显示它。当你这样做时(例如使用printf()调用),计算机将值转换为ASCII字符,这些字符不再是我们正在操作的整数值。

C语言中的所有数字(以及其他一切)都用二进制表示。0x18和24的值是一致的。只有当您想要将它们表示为字符串时才重要。