二進位制右移問題高手來,二進位制右移問題高手來

時間 2021-09-15 02:20:46

1樓:匿名使用者

11110001右移4位,有不同的右移操作。如果是邏輯右移的話,11110001右移4位之後,得00001111(左側補0);但如果是算術右移的話,11110001右移4位之後,得11111111(左側不變)。

2樓:做而論道

首先-15算不算有符號數?

算。-15用二進位制如何表示?

即:-1111。

15的二進位制是1111,-15的二進位制數是不是15取反+1,-(1111)+1,結果是0001,這個結果那符號位不是負數1啊?

錯了。其中的這一句:-15的二進位制數是不是15取反+1,...

不是。還是11111,最高位1表示負數,1111表示15,這樣是-15?

不是。1111,如果是補碼,它就是代表 -1。

1111,如果是原碼,它就是代表 -7。

暈頭轉向,我學得很不好,希望高手給指點。

其次假設a的二進位制是負數10100110,它的十進位制怎麼計算?

負數,前面要有一個負號:"-"。

10100110,這裡並沒有寫負號,這就是正數。

它的十進位制怎麼計算?--你想要算什麼?加、減、乘、除?

-----------

看來,樓主是沒有分清《數》和《碼》的關係。

對於一個數字,無論它是什麼進位制,負號,都要寫成 "-" 。

變成《補碼》、《移碼》等等之後,才用數字來代表負號。

當用數字代表了符號,就再也不要說這是某某數了,而要說,這是某某數的什麼碼。

另外,變換的時候,應先說明位數,以便給符號,明確一個位置。

c語言中的右移一位是不是應該除以2

3樓:非常可愛

右移一來位相當於除以2。

例:5>>1

5的二自進bai製表示是101,那麼右移一位之du後是zhi10就是2了,是整除的;左移的dao話就是在後面補一個零,相當於是乘以二,那麼變成了1010,十進位制是10。

101右移,就是把最後一位拿掉了,是10這個是二進位制的,十進是2,5/2本來是小數,但這裡是整數操作的,所以把小數部分去掉了。

擴充套件資料

c語言中的左移

1、左移就是把一個數的所有位都向左移動若干位,在c中用《運算子.例如:

inti=1;

i=i<<2;//把i裡的值左移2位。

2、補符號位,就是一個signedchara=0xff;

a=a>>1;/*它仍是0xff,補了符號位。最高位是符號位=1,右移後符號位保持不變*/;

a=0x80;

a=a>>1;/*變成了0xc0*/

a=0x1f;

a=a>>1;/*變成了0x0f,因為它開始的符號位就是0*/。

4樓:幸巴達

(usartdiv - usartdiv_zhengshu)* 16相當bai於(usartdiv - usartdiv_zhengshu)<<4

左移du4位。

你理zhi解的是

dao對的。貌似是專寫**錯了

右移一位屬相當於除以2.

5樓:匿名使用者

不是c語言的有符號整數向右移位運算不等同於除以2的某次冪

如(-1)/2和(-1)>>1,前者的回結果一般答是0,後者一般是-1,所以在c語言中,負數向右移動1位並不等同於除以2。

解決的方法是:當除數是2的n次冪時,x/(2^n),可以用移位操作(x + 2^n - 1) >> n來代替(x + 2^n - 1須小於0,^是乘方操作)

在c語言中,-100/8=-12,而-100>>3=-13,兩者不相等,而用(-100+7)>>3代替則相等。

什麼是二進位制?二進位制怎麼算,二進位制是什麼意思,怎麼算

兜轉瞬間 二進位制是計算技術中廣泛採用的一種數制。二進位制資料是用0和1兩個數碼來表示的數,它的基數為2,進位規則是逢二進一。二進位制是計算技術中廣泛採用的一種數制。二進位制資料是用0和1兩個數碼來表示的數。它的基數為2,進位規則是逢二進一,借位規則是借一當二,由18世紀德國數理哲學大師萊布尼茲發現...

關於二進位制的問題,關於二進位制的問題

二進位制18世紀德國數理哲學大師萊布尼茲從他的傳教士朋友鮑威特寄給他的拉丁文譯本 易經 中,讀到了八卦的組成結構,驚奇地發現其基本素數 0 1 即 易經 的陰爻 和 陽爻,其進位制就是二進位制,並認為這是世界上數學進位制中最先進的。20世紀被稱作第三次科技革命的重要標誌之一的計算機的發明與應用,其運...

二進位制怎麼用,什麼是二進位制

二進位制 以2為基數的記數系統。二進位制數的表示法。二進位制是計算技術中廣泛採用的一種數制。二進位制數是用0和1兩個數碼來表示的數。它的基數為2,進位規則是 逢二進一 借位規則是 借一當二 二進位制數也是採用位置計數法,其位權是以2為底的冪。例如二進位制數,其權的大小順序為 2。對於有n位整數,m位...