float使用0xFF
2024-09-01 12:13:01
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数字,结果是不可预料的。
最新文章
- cg数据类型
- 数据库Sharding的基本思想和切分策略
- 博弈论揭示了深度学习的未来(译自:Game Theory Reveals the Future of Deep Learning)
- wordpress搬家换域名
- Unity5.1 新的网络引擎UNET(十五) Networking 引用--上
- static方法,属性,代码块初始化顺序和执行顺序
- JAVA的数组和输入
- Linux下安装Android Studio (Centos 7)
- C语言有关数组的几点
- python进度1
- Topcoder SRM 637 (Div.2)
- [C++程序设计]用指向数组的指针作函数参数
- 工具篇-MAT(Memory Analyzer Tool)
- 【R】正态检验与R语言
- C盘里的桌面文件移到E盘里了,然后E盘里的文件都显示到桌面上了,怎么将桌面文件还原回C盘
- hash一致性
- 构建FTP服务
- Amber learning note A8: Loop Dynamics of the HIV-1 Integrase Core Domain
- android 去掉主题
- LeetCode--231--2的幂函