我想打印的样子0xf8, 0xff, 0x89, 0x6b
时的混淆的字符数组为unsigned long
0x93e1c829
十六进制序列转换为
2481047593
我的十六进制序列存储在一个无符号字符数组
我用
unsigned char number[4];
// populate the array
unsigned long expected_value = (unsigned long) (*((unsigned int*) number))
我很确定我错过了一些相当简单的事情,但无法发现它。上面的逻辑对我说:将char数组转换为整数数组,然后取整数值并将其转换为无符号长整数。
然而,当我做
printf("%lu", expected_value);
我得到
701030803
参考:
使用
http://www.binaryhexconverter.com/hex-to-decimal-converter
我发现是t他期望的价值是2481047593
Rather比快速和肮脏,是不是整个'网络字节顺序'功能套件? –
@Peter,是的,但它们不是ISO C的一部分。但是,我也会提及它们。谢谢。 – paxdiablo