小编All*_*len的帖子

C上的浮点表示错误

所以我想验证语言C中数字1.0的十六进制表示,下面是我的代码:

int main(int argc, char **argv)
{
    void showBytes(unsigned char * p,int size){
        int i;
        for (i=0;i<size;i++){
            printf("%.2x",p[i]);
        }
    }

    float f;
    f=1.0;
    showBytes((unsigned char *)&f,sizeof(f));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我构建并运行我的程序时,我得到39300000,这不是1.0(00003039)的正确表示.任何人都可以向我解释为什么我得到这个不正确的值?谢谢!!!

c floating-point

0
推荐指数
1
解决办法
267
查看次数

标签 统计

c ×1

floating-point ×1