c语言正数与负数相加_C语言数据基本类型(1)
1、原碼:一個數的原碼(原始的二進制碼)有如下特點:
最高位做為符號位,0表示正,為1表示負
其它數值部分就是數值本身絕對值的二進制數
負數的原碼是在其絕對值的基礎上,最高位變?yōu)?
注:原碼表示法簡單易懂,與帶符號數本身轉換方便,只要符號還原即可,但當兩個正數相減或不同符號數相加時,必須比較兩個數哪個絕對值大,才能決定誰減誰,才能確定結果是正還是負,所以原碼不便于加減運算。
2、反碼:
對于正數,反碼與原碼相同;對于負數,符號位不變,其它部分取反(1變0,0變1)
注:反碼運算也不方便,通常用來作為求補碼的中間過渡。
3、補碼:
在計算機系統(tǒng)中,數值一律用補碼來存儲。
補碼特點:
對于正數,原碼、反碼、補碼相同
對于負數,其補碼為它的反碼加1
補碼符號位不動,其他位求反,最后整個數加1,得到原碼
補碼的意義
在計算機系統(tǒng)中,數值一律用補碼來存儲,主要原因是:
統(tǒng)一了零的編碼
將符號位和其它位統(tǒng)一處理
將減法運算轉變?yōu)榧臃ㄟ\算
兩個用補碼表示的數相加時,如果最高位(符號位)有進位,則進位被舍棄
說明:不管以原碼方式存儲,還是以反碼方式存儲,0也有兩種表示形式。但是如果以補碼方式存儲,補碼統(tǒng)一了零的編碼:
注意事項:
1、符號位 正數:0
2、符號位 負數:1
3、補碼計算結果,符號位超出大小限制則省略符號位
4、補碼結果:開頭數字是1時、根據負數規(guī)則轉為源碼、開頭0是為正數轉換
5、正數:源碼、反碼、補碼、相同
6、負數源碼轉反碼:符號不變,其他位0變?yōu)?、1變?yōu)?
7、負數反碼轉補碼:反碼的結果之上加1
8、加完或減完結果 不能大于或小于負的127
4、數據類型
為了得到某個類型或某個變量在特定平臺上的準確大小,您可以使用?sizeof?運算符。表達式?sizeof(type)?得到對象或類型的存儲字節(jié)大小。下面的實例演示了獲取 int 類型的大小:
#include #include int main(){ printf("int 存儲大小 : %lu \n", sizeof(int)); printf("float 存儲最大字節(jié)數 : %lu \n", sizeof(float)); printf("float 最小值: %E\n", FLT_MIN ); printf("float 最大值: %E\n", FLT_MAX ); printf("精度值: %d\n", FLT_DIG );A return 0;}//輸出int 存儲大小 : 4 float 存儲最大字節(jié)數 : 4 float 最小值: 1.175494E-038float 最大值: 3.402823E+038精度值: 6注:如果想數據是無符號的,只要在前面加一個unsigned即可!
總結
以上是生活随笔為你收集整理的c语言正数与负数相加_C语言数据基本类型(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 上海欢乐谷入园时间
- 下一篇: bootstraptable 汇总_JS