从事新项目并遇到问题。我在char数组中得到了一大块字节。 Big Endian中有4个字节需要转换为int。当我尝试将4个字节的char数组转换为字节后的int字节时,它们会以负数形式出现。任何解决方案/算法?
谢谢!
网络代码?这就是ntohl
和htonl
的用途。这些函数在native endian和big endian之间进行转换。
要读取整数:
int value = (int) ntohl(*(int32_t *)(buffer + offset));
要写一个整数:
*((int32_t *)(buffer + offset)) = htonl((int32_t)value);
您可以使用atoi转换您的阵列。
要使用atoi,您需要以“\ 0”结尾,但您可以这样做:
您可以在循环内重复上述操作,并选择要使用strncpy参数转换的字节数(n)