日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

C++负数、小数如何保存

發布時間:2023/11/27 生活经验 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++负数、小数如何保存 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

負整數

正整數直接按照源碼存儲,負整數按照補碼存儲。

原碼、反碼、補碼

首先要清楚原碼、反碼、補碼:
計算機中一個字節為8位,在此以一個字節為例:
原碼:
十進制1:0000 0001
十進制-1:1000 0001(負數的符號位為1)
反碼:
十進制1:0000 00001
十進制-1:1111 1110(除符號位外,其余反轉)
補碼:
十進制1:0000 00001
十進制-1:1111 1111(負數的補碼為負數的反碼+1)
因此,正數的原碼、反碼、補碼相同,負數的原碼、反碼、補碼各不相同。
?

反碼、補碼作用

引入補碼,是為了計算負數的加法,也可以看做減法。比如10-1,如果按原碼計算的話:
(0000 1010 + 1000 0001) = 1000 1011 = -11,錯誤。
因此需要使用補碼進行計算:
(0000 1010 + 1111 1111) = 1 0000 1001 = 0000 1001 = 9。
引入反碼、補碼是為了更容易的計算減法。可以將減法看做加一個負數,然后取負數的補碼進行計算。
計算機以補碼的形式存儲小數。
?

范圍

對于單字節無符號整形,占8位,范圍為:0000 0000~1111 1111,即0~255。
對于單字節有符號整形,占8位,正數范圍為:0000 0001~0111 1111,即1~127,
??????????????負數范圍為:1000 0001~1111 1111,即-1~-127。
?
?

小數

參考:
https://blog.csdn.net/ACdreamers/article/details/19012279?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.control&dist_request_id=1328603.58325.16151918506269985&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.control
小數的整數、小數部分分別用二進制表示:
如6.75轉換為二進制:6轉換為0110,0.75轉換為:11。所以6.75可以表示為(0110.11)2

小數的存儲

小數的存儲分為3位:符號位、指數位、尾數位。
符號位:0:正數,1:負數
指數位:127+指數轉為二進制數
尾數為:小數轉為二進制數后,用科學計數法表示后的尾數
??如173.8125轉換為二進制:10101101.1101,用科學計數法表示為:1.01011011101*10^7。則符號位為0,指數位為:(127+7)2,即10000110,尾數位為:01011011101。則173.8125在計算機中存儲為:
0 1000 0110 0101 1011 1010

總結

以上是生活随笔為你收集整理的C++负数、小数如何保存的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。