我写了一个程序来打印出C中浮点数的位模式 .
所以我希望得到一个标准的IEEE-754位模式,即:1符号位| 8个EXP位| 23个尾数位
当我得到输出并将结果放到IEEE-754转换器时,数字是错误的 . 当我一点一点颠倒顺序时,数字是正确的 .
所以我要问的是:我找到了一个线程,我在其中了解到该模式可能被BYTE-WISE反转,但无处可寻,我发现它完全被BIT-WISE反转 .
请问有人可以这么做吗?
这是程序的屏幕截图,输出和转换结果 . (正如你所看到的那样,我把数字按相反的顺序放入转换器中,结果对我来说很好 . )
1 回答
字节顺序不是问题,因为你在整个对象的值上使用了位移运算符 .
你只需按相反的顺序打印出这些位,没有什么比这更好的了 .
您首先开始打印最低有效位,并且网页以最高有效位开始 . 两种变体都是正确的 .
一个侧节点,你将float解释为int的方式是不正确的,它会导致未定义的行为 . 您应该使用宽度等于或大于float类型宽度的无符号整数,并使用memcpy .