整數與負數的按位與,一個整數與一個負數的按位與?

2022-10-26 23:15:25 字數 3461 閱讀 3157

1樓:好聽傷感情歌

只需要把二進位制最高位改成1即可。 其他不變也就是把16二進位制中的第一位改成後1為負,0為正。

例如:1000000000000001 這個就是一個負數吧。

如果不是。 你在看看。 我沒弄蠻清楚。 或者是先求原碼在求補碼吧。

2樓:匿名使用者

正數的補碼是本身,負數的補碼,現算成正數的二進位制再取反再加1

3樓:波波羅克羅伊斯

。。。負數是補碼,正數原碼就是補碼啦,所以你說都是補碼也不算錯

最高位1是負數

4樓:俞梓維原寅

負數的補碼就是對反碼加一,而正數不變,正數的原碼反碼補碼是一樣的。

採用補碼錶示時,16位整數的負數最小數就是-32768,而正數最大數是32767;

16位原碼錶示的整個資料區間為:【-32767——-0,+0

——32767】

16位補碼錶示的整個資料區間為:【-32768——0——32767】請注意這兩種碼錶示的個數總數是一樣的,但補碼錶示的資料卻是唯一的;

[1111

1111

1111

1111]

原碼錶示時確為-32767,但當採用補碼錶示時,規定由-32768由於代替了-0(為了確保整個資料區間只有一個0,而不是一個+0和一個-0),因而它也就沒有了原碼和反碼。

c語言中"按位與"&運算中如果是兩個負數,先取反「與」,所得的結果是否要寫成原碼?

5樓:匿名使用者

呵呵,這來個問題,計算自機應該是:

1、如果 &運算子的兩個運算元是兩個變數,就直接把記憶體中的二進位制位直接拿來位運算,整型數在計算 機 中是以二進位制補碼儲存的,所以應該說是以補碼來運算的,雖然正數的原碼與其補碼數值上相同,但意義不同,故我認為這邊不能說是寫成原始碼之類的。。

2、如果&運算子兩邊有 常量,這是很自然的要把常量轉化為計算機儲存的方式,即補碼形式(所以有你說的「書中寫到負數先要取反,再進行「按位與」,」),但結果決不能說是「當結果寫成十進位制時,應寫成原碼。」,儘管數值上有可能相等,但其還是補碼

6樓:匿名使用者

不是,如果復對無符號型,都是用制原碼錶示.而對有符號型,計算機首先將你寫的10進位制,轉換成2進位制,然後將2進位制(即原碼)取反,變成反碼,最後反碼再加1,得補碼.用補碼形式進行邏輯運算或者算術運算.

哦,對有符號型資料,計算機是以補碼的形式進行對映.即編碼.簡單說就是一個補碼對應一個數字.所以對負數,計算機也是將結果通過補碼的形式,寫入視訊記憶體,從而顯示出來的.

如果您還有什麼問題,可以問我的勒~

7樓:匿名使用者

這個你就不用操心了,因為系統會自動進行相應轉換

8樓:匿名使用者

不需要寫成什麼原碼,直接位與運算就行。輸出結果通常都是十進位制,不存在什麼原碼。

一個整數,不是正數就一定是負數

9樓:夢色十年

錯誤。0是整數,0既不是正數,也不是負數。

0是介於-1和1之間的整數。是最小的自然數,也是有理數。0既不是正數也不是負數,而是正數和負數的分界點。

0沒有倒數,0的相反數是0,0的絕對值是0,0的平方根是0,0的立方根是0,0乘任何數都等於0,除0之外任何數的0次方等於1。0不能作為分母出現,0的所有倍數都是0。0不能作為除數。

10樓:江淮一楠

1·這個判斷不對。

2·以0為界限,將整數分為三大類:

1). 正整數,即大於0的整數如,1,2,3······n。

2). 零,既不是正整數,也不是負整數,它是介於正整數和負整數的數。

3). 負整數,即小於0的整數如,-1,-2,-3······-n。

c語言基礎題:d1=~a的意思不就是按位取反麼?不就是把0變1,1變0麼?為啥又負數補碼還原求原碼

11樓:匿名使用者

~a表示將a按位取反,a是一個變數 , 至少要有1個位元組(char),而一個位元組有8位!

計算機中儲存的整數,都是按補碼存放的,規定:正數的補碼與原碼相同,負數的補碼為其原碼的反碼+1。 所以,當a是負數時,計算~a的結果是要求補碼的。

如:char a=7 ; (00000111)~a = 11111000

轉換成原碼為:

反碼:11111000 - 1 = 11110111原碼:10001000= -8

按位取反~(~1<<1)另外c語言負數按位取反是啥啊

12樓:訾嘉誼辜澍

1的二進位制表示為00000000

00000001

按位取反就是每一位上0變成1,1變成0

上面這個就變成11111111

111111110

按位取反~(~1<<1)

先是~1

結果是11111111

111111110

然後左移一位<<1

結果是111111111

11111100

然後再取一次反

結果是00000000

00000011

結果就3.。。。

所以~(~1<<1)的最後結果是3

希望能幫到你。。。。

13樓:遲蘊涵哀瓏

按位取反就是每一位上0變成1,1變成0

比如2的二進位制表示為00000000

00000010

按位取反後就變成

11111111

11111101

按位取反~(~1<<1)

先是~1

結果是11111111

11111110

然後左移一位<<1

結果是11111111

11111100

然後再取一次反

結果是00000000

00000011

結果就3.

所以~(~1<<1)的最後結果是3

求負數的補碼時按位取反再加一是什麼意思?

14樓:做而論道

學習補碼,重要的是學到它的本質和定義。

求反加一,僅僅是一個簡單的演算法,並不值得過多的重視。

求反加一,的的確確,也沒有什麼意思。

建議看看:

15樓:匿名使用者

是不是:負數的補碼就是第一位符號位不變,重最後一位遇到第一個1 依次取反就行了,(一般為8位2進位制數)

16樓:

將原碼的0變為1 ,一變為0,最後一位加1,然後算出來就是了

嗯,小數乘以整數的意義與整數乘法的意義相同,就是求幾個什麼加速的幾個的,簡便運算

就是求幾個相同加數和的簡便運算!小數乘整數的意義與整數乘法的意義相同就是求幾個什麼加速的和的,簡便運算。小數乘整數的意義與整數乘法意義相同,就是求 幾個相同加數和的簡便運算.小數乘整數的意義與 什麼 的意義相同,就是求幾個 什麼 的和的簡便運算。小數乘整數的意義與 整數乘法 意義相同,就是求幾個 相...

整數和自然數有什麼區別自然數與整數的區別

自然數包括 零和正整數 整數包括零,正整數和負整數 整數包括自然數和負整數 背景知識 1 整數 整數 integer 就是像 3,2,1,0,1,2,3,10等這樣的數。整數的全體構成整數集,整數集是一個數環。在整數系中,零和正整數統稱為自然數。1 2 3 n n為非零自然數 為負整數。則正整數 零...

輸入整數,判斷該數是否為降序,輸入一個整數,判斷該數是否為降序

迴圈對比,兩個數減一下,如果其中一個小於0,則不為降序 integer a new integer 5 a 0 9 a 1 8 a 2 6 a 3 7 a 4 5 for int i 0 i0 需要判斷這個數是不是純數字麼?用氣泡排序法對輸入的20個數進行降序並存入陣列中,輸入一個數,檢視是否存在 ...