將符串表示的二進位制數轉換成對應的十進位制數,大家幫我看看這是什麼演算法

2021-04-22 15:36:46 字數 5746 閱讀 2772

1樓:匿名使用者

這有什麼演算法bai,

就是把二進

du制字元zhi串轉成整dao數,

while(*p!='\0')

*p-'0'; 就是回把一位二進位制字元, 轉成數字,也就是: '0'轉成0, '1' 轉成 1y=y*2+ ___

就是每多一位, 就乘以

答2, 因為是2進製

八進位制轉換成十六進製制的演算法 請舉例說明

2樓:life布可

八進位制數轉換為十六進製制

轉換方法:以二進位制位中介,即先將八進位制數按照一位拆三位的方法轉換為二進位制,在對這個二進位制數使用四位合一位的方法轉換為十六進製制。

如:將13.4o轉換為十六進製制。

1、將13.4o轉換為二進位制。轉換方法在本文的01部分,結果是1011.1b。

2、將第一步中的二進位制數1011.1b轉換為十六進製制。整數部分1011正好是四位,組成一組,轉換為十六進製制是b(可先將1011按權得到乙個十進位制數是11,11對應十六進製制的b)。

小數部分只有一位,後面要補三個0,組成一組,1000,轉換為十六進製制是8。所以,轉換為十六進製制的結果是b.8h。

3樓:純黑的眸子

八進位制轉

換成十六進製制演算法通常有兩種方法,

一種是先將八進位制轉換成二進位制,再將二進位制轉換成十六進製制,一種是先將八進位制轉換成十進位制,再將十進位制轉換成十六進製制。

假如八進位制數為347,

先用第一種方法,轉換成二進位制為011,100,111,再轉換成十六進製制為e7;

第二種方法先轉換成十進位制為231,再將十進位制轉換成十六進製制為e7。

4樓:匿名使用者

八進位制轉換成16進製制的演算法,請舉例說明八進位制轉正,這是乙個高階的數學問題,請高中的數學老師幫你檢

5樓:紙醉金迷

你可以到網上搜一下八進位制轉十六進製制的演算法。

6樓:匿名使用者

八進位制每位對應二進位制3位,十六進製制每位對應二進位制4位

172o=?h

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

7樓:

首先講一下「權重」的概念,數字中某位的權重: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的二進位制表示。

拓展資料:

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

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

8樓:匿名使用者

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

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

十進位制整數轉換為二進位制整數採用"除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。

9樓:匿名使用者

學計算機的朋友剛開始學習時都要接觸進製之間的轉換,二進位制、十進位制、八進位制、十六進製制等,這個是很枯燥的,轉來轉去就轉矇圈了,別蒙別蒙,今天咱們乙個乙個搞定,看看二進位制和十進位制之間如何相互轉換的。

方法/步驟

轉成二進位制主要有以下幾種:正整數轉二進位制,負整數轉二進位制,小數轉二進位制;

1、 正整數轉成二進位制。要點一定一定要記住哈:除二取餘,然後倒序排列,高位補零。

也就是說,將正的十進位制數除以二,得到的商再除以二,依次類推知道商為零或一時為止,然後在旁邊標出各步的餘數,最後倒著寫出來,高位補零就ok咧。哎呀,還是舉例說明吧,比如42轉換為二進位制,如圖1所示操作。

42除以2得到的餘數分別為010101,然後咱們倒著排一下,42所對應二進位制就是101010.如圖2所示更直觀的表達。

計算機內部表示數的位元組單位是定長的,如8位,16位,或32位。所以,位數不夠時,高位補零,所說,如圖3所示,42轉換成二進位制以後就是。00101010,也即規範的寫法為(42)10=(00101010)2.

趕緊記住吧。

2、 負整數轉換成二進位制

方法:先是將對應的正整數轉換成二進位制後,對二進位製取反,然後對結果再加一。還以42為例,負整數就是-42,如圖4所示為方法解釋。

最後即為:(-42)10=(11010110).

3、 小數轉換為二進位制的方法:對小數點以後的數乘以2,有乙個結果吧,取結果的整數部分(不是1就是0嘍),然後再用小數部分再乘以2,再取結果的整數部分……以此類推,直到小數部分為0或者位數已經夠了就ok了。然後把取的整數部分按先後次序排列就ok了,就構成了二進位制小數部分的序列,舉個例子吧,比如0.

125,如圖5所示。

如果小數的整數部分有大於0的整數時該如何轉換呢?如以上整數轉換成二進位制,小數轉換成二進位制,然後加在一起就ok了,如圖6所示。

4、 整數二進位制轉換為十進位制:首先將二進位制數補齊位數,首位如果是0就代表是正整數,如果首位是1則代表是負整數。

先看首位是0的正整數,補齊位數以後,將二進位制中的位數分別將下邊對應的值相乘,然後相加得到的就為十進位制,比如1010轉換為十進位制,方法如圖7所示。

5、若二進位制補足位數後首位為1時,就需要先取反再換算:例如,11101011,首位為1,那麼就先取反吧:-00010100,然後算一下10100對應的十進位制為20,所以對應的十進位制為-20,方法如圖8所示。

6、將有小數的二進位制轉換為十進位制時:例如0.1101轉換為十進位制的方法:將二進位制中的四位數分別於下邊(如圖9所示)對應的值相乘後相加得到的值即為換算後的十進位制。

注意事項

進製之間的轉換雖然繁瑣,但理解後也不難,但是需要經常溫習,然後才不會弄混淆。

10樓:

#include

#include

int main()

i=31;

while(!b[i])i--;

while(i>=0)printf("%d",b[i--]);

return 0;}

11樓:匿名使用者

將數字一直除以2,直至除到1 ,再將餘數和最後的1從下向上倒著寫就是結果

12樓:匿名使用者

(42)10=(00101010)2.趕緊記住吧。應該寫為(101010)2.

13樓:匿名使用者

你要的是把乙個10進製轉成2進製的方法,還是寫乙個程式,輸入乙個10進製數,輸出其2進製?

二進位制轉化為十進位制的演算法?

14樓:跪著作揖

從最抄低位(最右)算起襲,位上的數字乘以本位的權重

bai,權重就du是2的第幾位的位數減一次方。zhi

比如第2位就是2的(dao2-1次)方,就是2;第8位就是2的(8-1)次方是128。把所有的值加起來。

2(1-1)代表2的0次方,就是1;其他類推

比如二進位制1101,換算成十進位制就是:1*2(1-1)+0*2(2-1)+1*2(3-1)+1*2(4-1)=1+0+4+8=13。

擴充套件資料

1、二進位制轉換為八進位制:

把二進位制的數從右往左,三位一組,不夠補0

列:111=4+2+1=7

11001拆分為 001和011,001=1,011=2+1=3。

那麼11001轉換為八進位制就是31。

2、二進位制轉換為十六進製制:

參照二進位制轉八進位制,但是它是從右往左,四位一組,不夠補0

列子:1101101拆分為1101、0110

分別計算兩個二進位制的值,1101=8+4+0+1=13,十六進製制中13為d

0110=4+2=6,那麼二進位制1101101轉換為十六進製制就是6d。

15樓:亦若

從最低位(最來右)算起,

源位上的數bai字乘以本位的權重du,權重就是zhi2的第幾位的位數

dao減一次方。

比如第2位就是2的(2-1次)方,就是2;第8位就是2的(8-1)次方是128。把所有的值加起來。

2(1-1)代表2的0次方,就是1;其他類推

比如二進位制1101,換算成十進位制就是:1*2(1-1)+0*2(2-1)+1*2(3-1)+1*2(4-1)=1+0+4+8=13

擴充套件資料

計數規則:

在人們使用最多的進製計數制中,表示數的符號在不同的位置上時所代表的數的值是不同的。

十進位制(d(decimal))是人們日常生活中最熟悉的進製計數制。在十進位制中,數用0,1,2,3,4,5,6,7,8,9這十個符號來描述。計數規則是逢十進一。

二進位制(b(binary))是在計算機系統中採用的進製計數制。在二進位制中,數用0和1兩個符號來描述。計數規則是逢二進一。

十六進製制(h(hexadecimal))是人們在計算機指令**和資料的書寫中經常使用的數制。在十六進製制中,數用0,1,…,9和a,b,…,f(或a,b,…,f)16個符號來描述。計數規則是逢十六進一。

16樓:banji的老巢

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

就是答案 。

例如屬:01101011.轉十進位制:

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

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

17樓:央夦

【標準來答案】二進位制轉十進自製

從最後一

bai位開始算,依次du列為第0、1、2...位第n位的數(0或

zhi1)乘以2的n次方

得到dao的結果相加就是答案

例如: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.

將十進位制數256 45轉換成二進位制數,並寫出計算過程。結果保留四位小數

解題思路 分為整數部分轉換和小數部分轉換,兩步操作整數部分除2逆向取餘 小數部分乘2正向取整 答案是 100000000.0111 解題步驟如圖所示 100000000.0111 學習程式語言和數學的聯絡?數學不好未必學不好程式設計,但若數學不好基本就不用想設計什麼數學方面的演算法了,比如加密壓縮之...

12將二進位制數1100100分別轉換成八進位制數和十六進製制

先轉二進位制,然後轉為十進位制b4 2h1011 0100 0010 b2 64 256 512 2048 2882dh表示16進製制 b表示2進製 d表示10進製 不然你寫101這個數,他有很多表示形似.二進位制和10進製,8進製備16進製制都有101這個數.1100100轉換成八進位制 將110...

將十進位制數692轉換成二進位制八進位制十六進製制

先拿轉成二進位制為例,手算 整數部分 寫出二進位制每位上的基數,個位是1,高位是低位乘以2,寫到比69大為止 128 64 32 16 8 4 2 1 0 1 0 0 0 1 0 1 用69除以最高位上的基數得到商和餘數 69 128 0 69 將商寫到128這位下面 用上步得數的餘數繼續計算 69...