This question already has answers here:
Closed 6 years ago.
embedding chars in int and vice versa
(3个答案)
Copying a 4 element character array into an integer in C
(6个答案)
只是想确保我做对了。
因此,我遇到了一个问题的答案:如何将字符存储在int中,如下所示:
但据我所知这是错误的,不是吗?
原因:假设
如果执行上述代码的机器是小结束符,
否则,如果运行在代码上方的机器是big endian,那么它将保存一个错误的值,不是吗?
我只是想确定我做的对,我现在不会再问这个方向的问题了。
(3个答案)
Copying a 4 element character array into an integer in C
(6个答案)
只是想确保我做对了。
因此,我遇到了一个问题的答案:如何将字符存储在int中,如下所示:
unsigned int final = 0;
final |= ( data[0] << 24 );
final |= ( data[1] << 16 );
final |= ( data[2] << 8 );
final |= ( data[3] );
但据我所知这是错误的,不是吗?
原因:假设
data
以小端的方式存储了整数(例如,data[0]=LSB_ofSomeInt)
)。如果执行上述代码的机器是小结束符,
final
将保持正确的值,否则,如果运行在代码上方的机器是big endian,那么它将保存一个错误的值,不是吗?
我只是想确定我做的对,我现在不会再问这个方向的问题了。
最佳答案
当你有htonl等功能时不要这样做。
消除麻烦
关于c - 将字符转换为整数正确方式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19336736/
10-11 21:45