c語言正數與負數相加 C語言資料基本型別 1

2021-10-13 18:11:10 字數 1086 閱讀 5987

1、原碼:乙個數的原碼(原始的二進位製碼)有如下特點:

注:原碼表示法簡單易懂,與帶符號數本身轉換方便,只要符號還原即可,但當兩個正數相減或不同符號數相加時,必須比較兩個數哪個絕對值大,才能決定誰減誰,才能確定結果是正還是負,所以原碼不便於加減運算。

2、反碼:

對於正數,反碼與原碼相同;對於負數,符號位不變,其它部分取反(1變0,0變1)

注:反碼運算也不方便,通常用來作為求補碼的中間過渡。

3、補碼:

在計算機系統中,數值一律用補碼來儲存。

補碼特點:

補碼的意義

在計算機系統中,數值一律用補碼來儲存,主要原因是:

注意事項:

1、符號位 正數:0

2、符號位 負數:1

3、補碼計算結果,符號位超出大小限制則省略符號位

4、補碼結果:開頭數字是1時、根據負數規則轉為原始碼、開頭0是為正數轉換

5、正數:原始碼、反碼、補碼、相同

6、負數原始碼轉反碼:符號不變,其他位0變為1、1變為0

7、負數反碼轉補碼:反碼的結果之上加1

8、加完或減完結果 不能大於或小於負的127

4、資料型別

為了得到某個型別或某個變數在特定平台上的準確大小,您可以使用 sizeof 運算子。表示式 sizeof(type) 得到物件或型別的儲存位元組大小。下面的例項演示了獲取 int 型別的大小:

#include #include  int main()//輸出int 儲存大小 : 4 float 儲存最大位元組數 : 4 float 最小值: 1.175494e-038float 最大值: 3.402823e+038精度值: 6
注:如果想資料是無符號的,只要在前面加乙個unsigned即可!

C語言負數除以正數,與正數除以負數,正負有誰定呢?

拋磚引玉 c語言負數除以正數,與正數除以負數或者負數除以負數的餘數和商,正負有誰定呢?3 2 3 2 3 2 3 2 3 2 3 2 前提假設假定我們讓 a 除以 b,商為 q,餘數為 r q a b r a b 這裡,不妨假定 b 大於 0。我們希望 a b q r 之間維持怎樣的關係呢?最重的一...

C語言負數轉正數的隱藏缺陷

今天在寫程式的時候發現了乙個相當隱蔽的錯誤,查了好久才找到了這個缺陷,就是當我們在將乙個負數變成正數的時候,一定要注意防止資料溢位。比如定義乙個char型的變數a。如下所示 char a if a 0 a a printf d n 這幾條語句在一般情況下是不會出問題的,比如我們使變數a 10,輸出為...

c語言負數左移右移 C語言負數的移位運算

在c 中左移也就是所說的邏輯移位,右端補,而右移是算數移位,左端補齊的是最高位 的符號位。故負數左移,有可能變成正數,但負數右移,肯定還是負數。用進製的形式對資料進行賦值 這進製的數代表的是補碼。i 0xfffffff7 0xfffffff7 是補碼,而不是原碼,故 i 9 printf d x n...