将Char数组转换为int / double / float

时间:2011-09-29 06:47:03

标签: c

请求帮助,但也许我应该澄清一下我的问题。我想从文本文件中读取一些地址,例如:

someFile :: 0xc4fap4424ab1 0xac8374ce93ac ... etc

现在我想获取这些地址并将它们转换为十进制,以便我可以进行地址比较。所以我的问题是 1.我应该如何存储这些地址 2.存储地址后,如何将它们转换为十进制。

1 个答案:

答案 0 :(得分:2)

您的初始值设定项仅为temp数组声明一个元素,该值超出char的容量。您可以在一个char中存储的最大值为0xFF

如果temp的形式为:

char temp[] = {0x12, 0x34, 0x56, 0x78};

然后你可以做一些小事来产生4个字节中的int。实际上我会使用uint32_t与平台无关:

uint32_t x = (temp[0] << 24) | (temp[1] << 16) | (temp[2] << 8) | temp[3];

当然,你也必须照顾字节序。