四个字节的浮点数与八个字节的整数表示范围大小的对比
八個字節整數表示的數值范圍:
八個字節共64位,最左邊位符號位占1bit,后面數字位占63bit,可表示的數值范圍,1111...1111(1后面63個1)~0111...1111(0后面63個1),63個1是多大的數呢?
換算成十進制就是(2^62+2^61+...+2^1+2^0),這樣表示太過麻煩,我們可以換一種方式考慮。
對于二進制來說,有以下規律:
10?-1=1;
100-11=1;
1000-111=1;
...
以此類推:1000...0000(1后面63個0)-1111...1111?(63個1)=1;
因此0111...1111(0后面63個1)就可以表示為1000...0000(1后面63個0)-1,即:
1×2^63+0×2^62+...+0×2^1+0×2^0-1=2^63-1,這就是八個字節整數能表示的最大值;
同理可得1111...1111(1后面63個1)= - (2^63-1)。
需要注意的一點是,由于0000...0000(0后面63個0)與1000...0000(1后面63個0)都數值都為0,一個為﹢0一個為-0,參考一個字節取值范圍的規定,﹢0表示真正的0,-0表示的值=最小值-1,即為;
- (2^63-1)-1= - 2^63,這就是八個字節整數能表示的最小值;
四個字節浮點數表示的數值范圍:
單精度浮點數 float:32 位,符號位 S 占 1 bit,指數 E 占 8 bit,尾數 M 占 23 bit
浮點數格式為:N=(-1)^S*M*R^E
S:符號位,取值 0 或 1,決定一個數字的符號,0 表示正,1 表示負
M:尾數,用小數表示,例如 1.345 * 10^0,1.345 就是尾數
R:基數,表示十進制數 R 就是 10,表示二進制數 R 就是 2
E:指數,用整數表示,例如?10^-1,-1 即是指數
由于指數E有正負,其所占的8bit最左邊也為符號位,則E的范圍為111111111~011111111即
為-128~127;尾數M最大值為小數點后23個1,約等于1,所以四個字節浮點數表示的最大值為
1×2^127,最小值為-2^127。
總結:
四個字節浮點數表示的數值范圍:-2^127~2^127;
八個字節整數表示的數值范圍:- 2^63~2^63-1;
由此可見,四個字節浮點數表示的數值范圍要比八個字節整數表示的數值范圍大的多。
總結
以上是生活随笔為你收集整理的四个字节的浮点数与八个字节的整数表示范围大小的对比的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql数据库的导入导出(各种情况)
- 下一篇: 城市污水处理类毕业论文文献有哪些?