我有一个包含十六进制值的字符串:
"29E94B25"
我想使用10的基数将此十六进制字符串转换为无符号长整数。我想创建一个值为:
的unsigned long703154981
如何进行此类型转换?
答案 0 :(得分:6)
您可以使用strtoul
unsigned long n = strtoul("29E94B25", NULL, 16);
然后,您可以使用printf
在基础10中打印它。
没有unsigned long
以及2以外的基础。
答案 1 :(得分:2)
strtoul
unsigned long x;
x = strtoul("29E94B25", 0, 16);
答案 2 :(得分:1)
可以使用sscanf
进行任何类型的转换。
#include<stdio.h>
main(){
char a[] = "29E94B25";
unsigned long int b;
sscanf(a,"%X",&b);
printf("%ld",b);
}
答案 3 :(得分:0)
String hexNumber = "000001ae";
int i = Int32.Parse(hexNumber, NumberStyles.HexNumber);
MessageBox.Show(i); (or Console.Write(i))
int main(void)
{
char s[] = "0D76";
unsigned long x;
x = strtoul(s, 0, 16);
printf("The value represented by the string \"%s\" is\n"
"%lu (decimal)\n" "%#lo (octal)\n" "%#lx (hex)\n",
s, x, x, x);
return 0;
}