繁体   English   中英

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

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

我如何将整数值转换为其对应的十六进制,并使用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变量中。

谢谢

请注意,“十进制”或“十六进制”仅表示数字值。 换句话说,这是在屏幕上显示 int不同方式。 分配byRes = (BYTE)nVar; nVar的值nVarbyRes 您可以根据需要将该值显示为十六进制或十进制或7或42。 现代计算机将数据存储为电压差。 在机器级别,我们通常以“高”和“低”或“ 0”和“ 1”(又名二进制)来表示这些值,但是在编程级别,我们可以以任何方式想到这些数值希望。 将一个变量的“十六进制”值分配给另一个变量与分配“十进制”值相同,因为计算机直到知道要显示它时才知道我们如何看待该值。 当您执行此操作时(例如,使用printf()调用),计算机会将值转换为ASCII字符,而这些字符不再是我们正在处理的整数值。

C中的所有数字(以及其他所有内容)都表示为二进制数字。 0x18和24的值相同。 仅当您想将它们表示为字符串时才重要。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM