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



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

someFile::0xc4fap4424ab1 0xac8374ce93ac…等

现在我想把这些地址转换成小数,以便进行地址比较。我的问题是1. 我应该如何存储这些地址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];

当然,您还必须注意顺序

最新更新