c - 二进制值的小端计算

标签 c endianness

假设整数是2个字节,我想存储769。在二进制中,它将存储为00000011 00000001

如果我将其转换为小端,那么它应该存储为 00000001 00000011 。这样存储后,二进制数的值应该是49280(从左到右)。即使我从右向左计算,也和769不一样。

编译器是否再次重新排列字节以计算正确的值?在这种情况下,我猜大端会比小端更好。

最佳答案

big endian和little endian描述了内存管理的存储方式,即“字节”如何存储在内存中,并不意味着计算。 & 您可以在处理器周期之后交换字节。您可能会做错,因为您在处理器执行之前交换字节,这就是它给出错误值的原因!

关于c - 二进制值的小端计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48220320/

相关文章:

c++ - MySQL 连接器/C++ 问题

c - sscanf : get first and last token in a string

c - error : conflicting types, 错误:形参2的类型不完整

c - 从 argv 初始化指针以比较地址

c - 小端与大端

无法让标准差在 C 中工作

将 8 位 int 转换为 32 位

objective-c - 将 int 转换为字节并有效地切换字节序

c++ - 在运行时检测字节序有什么好处?

c - 移位是否取决于字节序?