十進位制轉二進位制的演算法,最好有例項

2021-12-28 09:10:23 字數 5443 閱讀 3870

1樓:匿名使用者

十進位制轉二進位制:   用2輾轉相除至結果為1 ,將餘數和最後的1從下向上倒序寫 就是結果   例如302   302/2 = 151 餘0   151/2 = 75 餘1   75/2 = 37 餘1    37/2 = 18 餘1   18/2 = 9 餘0 9/2 = 4 餘1    4/2 = 2 餘0 2/2 = 1 餘0 1/2 = 0 餘1 故二進位制為100101110

2樓:匿名使用者

302除以2 = 151 餘數為0

151除以2 = 75 餘1

75除以2 = 37 餘1

37除以2 = 18 餘1

18除以2 = 9 餘0

9除以2 = 4 餘1

4除以2 = 2 餘0

2除以2 = 1 餘0 注意最後2除以2=1 所以最後的結果加上1答案等於100101110

3樓:匿名使用者

十進位制轉二進位制其實不難,是一個連續除以二的過程:如十進位制數23,23/2=11餘1

11/2=5餘1

5/2=2餘1

2/2=1餘0

所以二進位制為0111,也就是把餘數倒加起來,就行了。望採納!

4樓:匿名使用者

/*'a':1000001 41 65

'b':1000010 42 66

'c':1000011 43 67

'd':1000100 44 68

'e':1000101 45 69

'f':1000110 46 70

'g':1000111 47 71

'h':1001000 48 72

'i':1001001 49 73

'j':1001010 4a 74

'k':1001011 4b 75

'l':1001100 4c 76

'm':1001101 4d 77

'n':1001110 4e 78

'o':1001111 4f 79

'p':1010000 50 80

'q':1010001 51 81

'r':1010010 52 82

's':1010011 53 83

't':1010100 54 84

'u':1010101 55 85

'v':1010110 56 86

'w':1010111 57 87

'x':1011000 58 88

'y':1011001 59 89

'z':1011010 5a 90press any key to continue*/#include

#include void fun(char *s,int n)s[i] = '\0';

len = strlen(s);

for(i = 0;i < len/2;i++)}int main( )

printf("\n");

return 0;}

二進位制轉十進位制,十進位制轉二進位制的演算法(求助)

5樓:隨便什麼名啦啦

二進位制轉換為十進位制:

方法:「按權求和」,該方法的具體步驟是先將二迸制的數寫成加權係數式,而後根據十進位制的加法規則進行求和 。

規律:個位上的數字的次數是0,十位上的數字的次數是1,......,依次遞增,而十分位的數字的次數是-1,百分位上數字的次數是-2,......,依次遞減。

十進位制轉換為二進位制:

一個十進位制數轉換為二進位制數要分整數部分和小數部分分別轉換,最後再組合到一起。

整數部分採用 "除2取餘,逆序排列"法。具體做法是:用2整除十進位制整數,可以得到一個商和餘數;再用2去除商,又會得到一個商和餘數,如此進行,直到商為小於1時為止,然後把先得到的餘數作為二進位制數的低位有效位,後得到的餘數作為二進位制數的高位有效位,依次排列起來。

小數部分要使用「乘 2 取整法」。即用十進位制的小數乘以 2 並取走結果的整數(必是 0 或 1),然後再用剩下的小數重複剛才的步驟,直到剩餘的小數為 0 時停止,最後將每次得到的整數部分按先後順序從左到右排列即得到所對應二進位制小數。

通用進位制轉換:

不同進位制之間的轉換本質就是確定各個不同權值位置上的數碼。轉換正整數的進位制的有一個簡單演算法,就是通過用目標基數作長除法;餘數給出從最低位開始的「數字」。

6樓:匿名使用者

十進位制轉二進位制用除2的短除法,二進位制轉十進位制用乘冪法,比如4,短除2,餘數為0,再除2,餘數為0,,直至為剩餘數字為1,逆序寫上去,為100,100=1*2^2+0*2^0+0*2^0=4

7樓:匿名使用者

十進位制轉二進位制:

用2輾轉相除至結果為1

將餘數和最後的1從下向上倒序寫 就是結果

例如302

302/2 = 151 餘0

151/2 = 75 餘1

75/2 = 37 餘1

37/2 = 18 餘1

18/2 = 9 餘0

9/2 = 4 餘1

4/2 = 2 餘0

2/2 = 1 餘0

故二進位制為100101110

二進位制轉十進位制

從最後一位開始算,依次列為第0、1、2...位第n位的數(0或1)乘以2的n次方

得到的結果相加就是答案

例如:01101011.轉十進位制:

第0位:1乘2的0次方=1

1乘2的1次方=2

0乘2的2次方=0

1乘2的3次方=8

0乘2的4次方=0

1乘2的5次方=32

1乘2的6次方=64

0乘2的7次方=0

然後:1+2+0

+8+0+32+64+0=107.

二進位制01101011=十進位制107.

8樓:匿名使用者

1.二進位制與十進位制的轉換

(1)二進位制轉十進位制

方法:"按權求和"

例:(1011.01)2 =(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10

=(8+0+2+1+0+0.25)10

=(11.25)10

(2)十進位制轉二進位制

· 十進位制整數轉二進位制數:"除以2取餘,逆序輸出"

例: (89)10=(1011001)2

2 89

2 44 …… 1

2 22 …… 0

2 11 …… 0

2 5 …… 1

2 2 …… 1

2 1 …… 0

0 …… 1

· 十進位制小數轉二進位制數:"乘以2取整,順序輸出"

例:(0.625)10= (0.101)2

0.625

x 21.25

x 20.5x 2

1.02.八進位制與二進位制的轉換

例:將八進位制的37.416轉換成二進位制數:

37 . 4 1 6

011 111 .100 001 110

即:(37.416)8 =(11111.10000111)2例:將二進位制的10110.0011 轉換成八進位制:

0 1 0 1 1 0 . 0 0 1 1 0 02 6 . 1 4

即:(10110.011)2 =(26.14)83.十六進位制與二進位制的轉換

例:將十六進位制數5df.9 轉換成二進位制:

5 d f . 9

0101 1101 1111.1001

即:(5df.9)16 =(10111011111.1001)2例:將二進位制數1100001.111 轉換成十六進位制:

0110 0001 . 1110

6 1 . e

即:(1100001.111)2 =(61.e)16

十進位制轉二進位制快速演算法

9樓:

首先講一下「權重」的概念,數字中某位的權重:2的(該位所在的位數(從右至左)-1)次方,比如:100的權重為:

2^(1-1)=1 1的權重為:2^(2-1)=2,二進位制轉十進位制:數字中所有位*本位的權重然後求和。

比如將10101轉化為十進位制:10101=1*2^4+0*2^3+1*2^2+0*2^1+1*2^0=21

十進位制如何轉二進位制:將該數字不斷除以2直到商為零,然後將餘數由下至上依次寫出,即可得到該數字的二進位制表示,以將數字21轉化為二進位制為例。

2.當商為零時,將餘數由下至上依次寫出,即為21的二進位制表示。

拓展資料:

十進位制數轉換為二進位制數時,由於整數和小數的轉換方法不同,所以先將十進位制數的整數部分和小數部分分別轉換後,再加以合併。

而由二進位制數轉換成十進位制數是把二進位制數首先寫成加權係數式,然後按十進位制加法規則求和,這種做法稱為「按權相加」法。

10樓:匿名使用者

十進位制數轉換為二進位制數時,由於整數和小數的轉換方法不同,所以先將十進位制數的整數部分和小數部分分別轉換後,再加以合併。

而由二進位制數轉換成十進位制數是把二進位制數首先寫成加權係數式,然後按十進位制加法規則求和,這種做法稱為「按權相加」法。

十進位制整數轉換為二進位制整數採用"除2取餘,逆序排列"法。

具體做法是:用2整除十進位制整數,可以得到一個商和餘數;再用2去除商,又會得到一個商和餘數,如此進行,直到商為0時為止,然後把先得到的餘數作為二進位制數的低位有效位,後得到的餘數作為二進位制數的高位有效位,依次排列起來。

以235為例,轉為二進位制:

235除以2得117,餘1

117除以2得58,餘1

58除以2得29,餘0

29除以2得14,餘1

14除以2得7,餘0

7除以2得3,餘1

3除以2得1,餘1

從得到的1開始寫起,餘數倒排,加在它後面,就可得11101011。

11樓:匿名使用者

十進位制整數轉換為二進位制整數十進位制整數轉換為二進位制整數採用"除2取餘,逆序排列"法。具體做法是:用2整除十進位制整數,可以得到一個商和餘數;再用2去除商,又會得到一個商和餘數,如此進行,直到商為0時為止,然後把先得到的餘數作為二進位制數的低位有效位,後得到的餘數作為二進位制數的高位有效位,依次排列起來。

例如上題42轉為二進位制就是101010.

人類算數採用十進位制,可能跟人類有十根手指有關。亞里士多德稱人類普遍使用十進位制,只不過是絕大多數人生來就有10根手指這樣一個解剖學事實的結果。實際上,在古代世界獨立開發的有文字的記數體系中,除了巴比倫文明的楔形數字為60進位制,瑪雅數字為20進位制外,幾乎全部為十進位制。

只不過,這些十進位制記數體系並不是按位的。

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

當前的計算機系統使用的基本上是二進位制系統,資料在計算機中主要是以補碼的形式儲存的。計算機中的二進位制則是一個非常微小的開關,用1來表示「開」,0來表示「關」。

二進位制轉十進位制公式

方法 按權求和 例 二進位制1011轉換成十進位制是11 規律 個位上的數字的次數是0,十位上的數字的次數是1,依次遞增,而十 分位的數字的次數是 1,百分位上數字的次數是 2,依次遞減。注意 不是任何一個十進位制小數都能轉換成有限位的二進位制數。通用公式為 abcd.efg 2 d 20 c 21...

二進位制與十進位制的換算二進位制和十進位制轉換怎麼算?

人們通常使用的是十進位制。它的特點有兩個 有0,1,2 9十個基本字元組成,十進位制數運算是按 逢十進一 的規則進行的.在計算機中,除了十進位制數外,經常使用的數制還有二進位制數和十六進位制數.在運算中它們分別遵循的是逢二進一和逢十六進一的法則.2 二進位制數 3 二進位制數有兩個特點 它由兩個基本...

二進位制與十進位制的轉換的公式,二進位制轉十進位制公式

計算機內部是以二進位制形式表示資料和進行運算的 計算機內的地址等訊號常用十六進位制來表示,而人們日常又習慣用十進位制來表示資料。這樣要表示一個資料就要選擇一個適當的數字符號來規定其組合規律,也就是要確定所選用的進位計數制。各種進位制都有一個基本特徵數,稱為進位制的 基數 基數表示了進位制所具有的數字...