最近犯了一个错误:

定义变量类型的时候竟然定义了unsigned double的类型。由于编译能够通过,因此一直没有发现这样写会有什么样的问题。

今天一次偶然的测试中发现这些变量的值都是整数。一开始觉得奇怪,明明是浮点数,怎么变成整型了?

后来上网查了一下资料:

原来浮点数是不能用 unsigned来规范的。unsigned 的意思就是把内存中的数据第一位也用来表示数据,而不用于表示符号位。而浮点数规定内存中数据的第一位必须是符号位。因此两者之间是互相矛盾的,这也就是为什么浮点数不会有unsigned类型。

可是这样的写法也不至于在VC编译时报错,只会给出一个wraning。

在某些编译器下unsigned float 和 unsigned double会被自动转换成unsigned int 类型,而不报错。这时sizeof(unsigned float)和sizeof(unsigned double)的值是4。

切记:不能定义unsigned float和unsigned double类型。

因为整型是一串二进制来存内容
比如00000000,其中第一位是符号位用来表示正负,但是你设置无符号就可以让后面的往这里进位,打到增加数据的目地。

可是浮点数是按照 整数部分,小数部分,指数部分存放的。运算也是分开来运算的。
没法做这样的进位。

unsigned只能修饰整型,即char short int long

数据类型定义的时候float,double就是带符号的了,浮点数第一位就是符号位

为什么不能够用unsigned 修饰 float和double相关推荐

  1. mysql中的double类型_MySQL中float、double、decimal三个浮点类型的区别与总结!

    作者:极客小俊 一个专注于web技术的80后 我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人! CSDN@极客小俊,原创文章, B站技术分享 个人博客: cnblogs.com 前端h ...

  2. C语言:十六进制(HEX)和浮点类型(float、double)转换

    目录 1.浮点类型转换为十六进制 方法1:用地址用指针 方法2:用共用体 方法3: 使用memcpy 2.十六进制转换为浮点类型 近日在研究Modbus协议的时候遇到这样一个情况:使用ModScan3 ...

  3. linux中double大小,linux 下 float 和 double 精度计算差别

    今天在根据需求写代码时候,偶尔发现linux 下 设置变量类型 float 和double 计算时, 得到的结果是不一样的. 要求: 设定值 = 传入值 * 10 * 122.88 /1000; ca ...

  4. FLOAT或DOUBLE列与具有数值类型的数值进行比较 问题

    来源: 首先声明:Mysql手册上已经说明,FLOAT或DOUBLE列与具有数值类型的数值进行比较,不能使用等式(=)比较. 但实际还有这种需要. 今天就来研究一下float,double 字段在wh ...

  5. 浮点数在计算机中存储方式float,double)---转

    C语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数据占用64bit,我们在声明一个变量float f= ...

  6. float和double的精度

    1 范围 float和double的范围是由指数的位数来决定的. float的指数位有8位,而double的指数位有11位,分布如下: float: 1bit(符号位) 8bits(指数位) 23bi ...

  7. 【转】float与double的范围和精度

    原文:http://blog.csdn.net/wuna66320/article/details/1691734 1 范围 float和double的范围是由指数的位数来决定的. float的指数位 ...

  8. (转载)float与double中的精度问题

    float与double的范围和精度 原文:http://blog.csdn.net/wuna66320/article/details/1691734 1 范围 float和double的范围是由指 ...

  9. float和double的精度和取值范围计算方法

    C/C++各数据类型大小和取值范围 类型名称 字节数 取值范围 signed char 1 -2^7(-128) ~ 2^7-1(127) unsigned char 1 0 ~ 2^8-1(255) ...

最新文章

  1. startActivityForResult 请求码不正确
  2. html div阴影向上,css3阴影向上缓动样式
  3. 使用IntelliJ IDEA11创建Java Web程序
  4. springboot 多个sevice类实现同一接口的调用
  5. Spring MVC源码——Servlet WebApplicationContext
  6. 网络电话---异常处理01
  7. vuejs项目性能优化 - 总结篇
  8. OpenCV3学习(2.1)——图像Mat数据的访问-at/ptr/iterator
  9. web前端新手入门教程:Web 框架的架构模式探讨
  10. 如何连接一个Linux服务器
  11. 磁盘管理高级进阶-LVM逻辑卷管理
  12. GBASE数据库迁移(Oracle到GBase 8s的数据类型映射)
  13. excel宏-自定义筛选查询
  14. SEO网络营销培训机构都是如何给新手SEO培训的,新手SEO看完就知道套路,以后就不会上当受骗
  15. 手把手教你ZPanelX 10.0.0在window下的汉化
  16. 聊聊高效的与第三方合作方沟通的一些技巧
  17. 【办公Tips】 如何快速将一列Excel值变成一段用符号间隔的文字
  18. web前端面试宝典——带你直击面试重难点(40个经典题目,涵盖近90%的考点,码字2w,干货满满!)
  19. Flutter自定义Decoration实现特殊的背景框
  20. 前端生成二维码,升级

热门文章

  1. 相互靠近的色环电感之间的互感
  2. 2021春季学期-创新设计与实践-Lesson3
  3. FIE2020-2020年的论文相关记录
  4. S-D5舵机拆开看一看
  5. DRV8825步进电机驱动控制模块以及双轴平台
  6. 9. 设计二个函数分别计算sinx和cosx_工程人常用的12个excel和9个wps技巧
  7. mysql vip_MySQL高可用集群的VIP切换
  8. mate40能更新鸿蒙,Mate40领衔更新!鸿蒙系统首批升级机型名单:这些机型可坐等推送...
  9. 网络系统结构和设计的基本规则(Basic rules for network system architecture and design)
  10. matlab GUI gca gco gcf