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

時間 2021-09-15 02:19: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代替則相等。

二進位制轉十進位制演算法,十進位制轉二進位制演算法

我們在網路上經常遇到要ip轉為二進位制來劃分或彙總子網,所以要找一種最快速的十進位制轉二進位制的方法 這種演算法用除16來算,基於我們對16以內的二進位制很熟悉 朋友你也許也奇怪,除16不是算16進製制轉換的嗎?呵呵,下面看來我說.我們用d表示10進製,用b表示2進製 公式是a d 16 b 餘c....

二進位制小數如何轉化為十進位制,如,二進位制小數如何轉化為十進位制,如

毓人 0.101 2 1 2 0 2 1 2 10 0.5 0 2 1 2 10 0.5 2 1 2 10 0.25 1 2 10 1.25 2 10 0.625 10 生活如歌 0.101b 2 1 2 3 0.625 二m進製數與z十s進製數如何轉換 3 二v進製數 十l進製數 對於j較小j的二...

c語言 二進位制轉十六進位制,C語言 二進位制轉十六進位制

看看這個行不行?希望對你有幫助 include stdafx.h include stdio.h include string.h include conio.h include stdlib.h void convert char input,char output for ii nx ii9 0...