c語言關係運算中負數是按0還是按

2021-03-10 14:29:10 字數 3604 閱讀 7321

1樓:篤學博志

1、關係運算子中是判斷邏輯,而不是正負;

2、邏輯只有真假,是0即假,非0即真;

3、按你所說負數當然是真咯!

如果滿意,請採納!

2樓:

關係運算中之區分零和非零,負數是非零

3樓:尼嗎還有

非零即為真,所以負數也是真,為1

4樓:乜懋任玉蘭

0001

取反1110

符號位為1,取反+1為

1010

轉化成10進製為

-2正數的原碼,補碼,反碼都版相同,都等於它本身負數的補權碼是:符號位為1,其餘各位求反,末位加1反碼是:符號位為1,其餘各位求反,但末位不加1也就是說,反碼末位加上1就是補碼

1100110011原

1011001100反除符號位,按位取反

1011001101補除符號位,按位取反再加1正數的原反補是一樣的

在計算機中,資料是以補碼的形式儲存的:

在n位的機器數中,最高位為符號位,該位為零表示為正,為1表示為負;

其餘n-1位為數值位,各位的值可為0或1。

當真值為正時:原碼、反碼、補碼數值位完全相同;

當真值為負時:

原碼的數值位保持原樣,

反碼的數值位是原碼數值位的各位取反,

補碼則是反碼的最低位加一。

注意符號位不變。

如:若機器數是16位:

十進位制數17的原碼、反碼與補碼均為:0000000000010001十進位制數-17的原碼、反碼與補碼分別為:1000000000010001、1111111111101110、1111111111101111

在c語言中怎麼表示負數。

5樓:陌上花開

值|第一位符號位1為負,0為正。 正數的補碼和2進製原碼是一樣的。

負數的補碼:

1、先取絕對值|x| ;

2、對|x|+1 ;

3、對|x|+1 取反,就得到它的補碼了 。

計算機中存放整型資料都是按補碼的形式存放的。

擴充套件資料:有符號數的表示方法是由硬體決定,而不是由c決定的。有三種表示方法:

1、二進位制原碼

0000 0001  表示 1

1000 0001  表示 -1

這個方法有個缺點是有兩個零: +0 和 -0。這會引起混淆,而且用兩個位組合來表示乙個值也有些浪費。

2、二進位制補碼(最普遍的系統)

區別在於 singned 和 unsigned:

1)如果是無符號位元組, 1000 0000 該組合為 1282)如果是有符號位元組, 1000 0000 該組合為 -128第一種表示數的範圍是 0 ~ 255;

第二種表示數的範圍是 -128 ~ +127,對於乙個二進位制補碼數取負數,最簡單的方法就是取反、加 1。

3、二進位制反碼

通過反轉位組合中的每一位以形成乙個數的負數,例如:

0000 0001  表示 1

1111 1110  表示 -1

這種方式也有乙個 -0:1111 1111。其範圍是 -127 ~ +127。

6樓:兮汐

1.負數在現代計算機裡一般用補碼表示,為什麼呢?原因是:保證0的左右不矛盾

1是0001,推算出0是0000;

-1的是1111,推算出0也是0000。

如果直接用反碼(0變成1,1變成0)那麼0就會有兩個結果。

如果用第一位表示符號,後三位表示大小,那麼就有空間浪費。

2.char型別是8位,1000 0000還原為原碼:

最高位是1,表示負數,剩餘的各位取反 111 1111 再+1 得到 1000 0000, +128的原碼,整個數為-128

求採納為滿意回答。

7樓:

就直接寫啊,

舉個例子啊:

int a = 19;

int b = 0-a; 這裡b就是負數了,0-19就是 -19了。

8樓:

直接在變數b前面加-(負號)即可。

設b=5

那麼int a=-b 此時a=-5

再比如設b=-5

int a=-b 此a=5 因為它相當於int a=-(-5) 即負負得正。

9樓:d靈心

定義有符號變數 在賦值的時候前面加乙個負號就行

10樓:溫暖流過時光

資料型別是有符號型別,負數就和數學裡的負數一樣。int 的取值範圍是-32768~32767,只要不越界就行

11樓:w水木清華

定義該數為浮點型,並在前面加符號即可!

12樓:匿名使用者

#include

#include

int main(void)

-b  直接寫成這樣就是了。

13樓:匿名使用者

直接乘-1就可以。b*(-1)

c語言中的位運算子中『按位取反』是怎麼運算的,什麼是負數的反碼,請各位幫我解釋一下!!!

14樓:匿名使用者

0001

取反1110

符號位為1,取反+1為

1010

轉化成10進製為

-2正數的原碼,補碼,反碼都相同,都等於它本身負數的補碼是:符號位為1,其餘各位求反,末位加1反碼是:符號位為1,其餘各位求反,但末位不加1也就是說,反碼末位加上1就是補碼

1100110011 原

1011001100 反 除符號位,按位取反1011001101 補 除符號位,按位取反再加1正數的原反補是一樣的

在計算機中,資料是以補碼的形式儲存的:

在n位的機器數中,最高位為符號位,該位為零表示為正,為1表示為負;

其餘n-1位為數值位,各位的值可為0或1。

當真值為正時:原碼、反碼、補碼數值位完全相同;

當真值為負時:

原碼的數值位保持原樣,

反碼的數值位是原碼數值位的各位取反,

補碼則是反碼的最低位加一。

注意符號位不變。

如:若機器數是16位:

十進位制數 17 的原碼、反碼與補碼均為: 0000000000010001

十進位制數-17 的原碼、反碼與補碼分別為:1000000000010001、1111111111101110、1111111111101111

15樓:匿名使用者

按位取反運算子~為單目運算子,具有右結合性。

其功能是對參與運算的數的各二進位按位求反。例如~9的運算為: ~(0000000000001001)結果為:1111111111110110

就像樓上說的「簡單的說: 1變成0 0變成1 」

16樓:匿名使用者

按位取反就是所有位取反。

寫出來就是:

a = ~a;

17樓:匿名使用者

簡單的說: 1變成0 0變成1

C語言運算子C語言運算子是怎麼運算的

內容來自使用者 wjian178 e68a84e8a2ad62616964757a686964616f31333433646432 1級優先順序 左結合 圓括號 下標運算子 指向結構體成員運算子 結構體成員運算子。2級優先順序 右結合 邏輯非運算子 按位取反運算子 字首增量運算子 字首減量運算子 正...

c語言運算子中問號是什麼意思C語言運算子中問號是什麼意思

問號是條件運算子的意思,跟冒號組合使用。條件運算子優先順序高於賦值 逗號運算子,低於其他運算子。表示式為 表示式1?表示式2 表示式3。先求解表示式1,若其值為真 非0 則將表示式2的值作為整個表示式的取值,否則 表示式1的值為0 將表示式3的值作為整個表示式的取值。擴充套件資料條件運算子具有右結合...

請問c語言是怎麼計算負數取餘的,請問C語言是怎麼計算負數取餘的?

c語言計算負數取餘 符號內的被除數決定,就是計算式中的 7,7,7決定 比如 7 5 2 7 5 2 7 5 2 負數取餘的原理 任何乙個整數n都可以表示成n k q r其中0 r q 這裡的r就是n除以q的餘數,即r n q例如 9 2 4 1 則 9除以4的餘數為 1。求餘 取整除後的餘數。求模...