gpt4 book ai didi

c函数将十六进制转换为十进制表示形式

转载 作者:行者123 更新时间:2023-11-30 18:22:28 25 4
gpt4 key购买 nike

我正在使用下面的函数将十六进制转换为十进制,但它没有打印正确的结果。谁能帮我这个??谢谢..

#include<stdio.h>
#include<stdlib.h>
long hextoint(char hex)
{
printf("%x\n",hex);
long hexa=0;
int byte;
for(byte=0;byte<8;byte++)
{
if(hex & (0x0001<<byte))
{
hexa+=1*(2^byte);
}

else
{
hexa+=(0*(2^byte));
}
}

return hexa;
}
int main()
{
char content[]={0x1F,0xF2,0x24};
int i;
for(i=0;i<3;i++)
{
long dec=hextoint(content[i]);
printf("%ld\n",dec);
}
}

最佳答案

您遇到的问题是您错误地表示了值和存储了值。计算机中的所有值都以二进制格式存储。但呈现方式可以采用不同的方式(十六进制、十进制、八进制等)。

数组content中的值仅在编辑器中是十六进制的。一旦编译并存储在内存中,它都是二进制的。因此,您不需要任何特殊函数来转换值,只需以十进制打印它们即可:

printf("%u\n", content[i]);

关于c函数将十六进制转换为十进制表示形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20967324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com