相关疑难解决方法(0)

如何在C++中的big-endian和little-endian值之间进行转换?

如何在C++中的big-endian和little-endian值之间进行转换?

编辑:为清楚起见,我必须将二进制数据(双精度浮点值和32位和64位整数)从一个CPU架构转换为另一个CPU架构.这不涉及网络,因此ntoh()和类似的功能在这里不起作用.

编辑#2:我接受的答案直接适用于我正在编制的编译器(这就是我选择它的原因).但是,这里有其他非常好的,更便携的答案.

c++ endianness

187
推荐指数
14
解决办法
27万
查看次数

C宏定义确定大端或小端机?

是否有一行宏定义来确定机器的字节顺序.我使用以下代码,但将其转换为宏将太长.

unsigned char test_endian( void )
{
    int test_var = 1;
    unsigned char test_endian* = (unsigned char*)&test_var;

    return (test_endian[0] == NULL);
}
Run Code Online (Sandbox Code Playgroud)

c architecture macros endianness

101
推荐指数
13
解决办法
9万
查看次数

标签 统计

endianness ×2

architecture ×1

c ×1

c++ ×1

macros ×1