zoukankan      html  css  js  c++  java
  • float使用0xFF

    1. float f = 0xFFFFFFFF;

    这一句完全是错误的用法,它不会使f变量内存变为4个0xFF,因为0xFFFFFFFF根本就不是有效的float数值,编译器无从处理,如果用printf('%x')打印f的值,结果一定不是0xFFFFFFFF。

    2. 正确的用法

        float f;
        unsigned char b[4] = {0xFF,0xFF,0xFF,0xEF};
        memset(&f, 0xFF, sizeof(f));// 正确的置为0xFF的方法
        memcmp(&f, b, sizeof(f));// 正确的判断内存区是否是0xFFFFFFFF的方法

    或者

       unsigned int c = 0xFFFFFFFF;

       memcmp(&f, &c, sizeof(f));

    3. 为什么fabs(f - 0xFFFFFFFF)是错误的用法,与第一条一样,0xFFFFFFFF根本不是有效的float,在计算fabs时,编译器会把0xFFFFFFFF弄成一个它认识的float数字,结果是不可预料的。

  • 相关阅读:
    bzoj 1054
    bzoj 1047
    bzoj 2761
    bzoj 1191
    bzoj 2748
    bzoj_1003 物流运输
    新的开始( [USACO08OCT]打井Watering Hole)
    map
    Generic Cow Protests-G——60分做法
    逆序对
  • 原文地址:https://www.cnblogs.com/any91/p/6689481.html
Copyright © 2011-2022 走看看