浮点数是不能用 unsigned来规范的。
unsigned 的意思就是把内存中的数据第一位也用来表示数据,而不用于表示符号位。而浮点数规定内存中数据的第一位必须是符号位。因此两者之间是互相矛盾的,这也就是为什么浮点数不会有unsigned类型。
可是这样的写法也不至于在VC编译时报错,只会给出一个wraning。
在某些编译器下unsigned float 和 unsigned double会被自动转换成unsigned int 类型,而不报错。这时sizeof(unsigned float)和sizeof(unsigned double)的值是4。
博客介绍了浮点数不能用unsigned规范的原因,unsigned将内存数据第一位用于表示数据,而浮点数规定第一位为符号位,二者矛盾。还提到这种写法在VC编译时仅给出警告,某些编译器会将unsigned float和unsigned double自动转换成unsigned int类型,sizeof值为4。

2936

被折叠的 条评论
为什么被折叠?



