2023-04-01影視二進制與十進制間的轉換方法(圖文教程)
大家好,小編來為大家解答以下問題,二進制與十進制間的轉換方法(圖文教程),二進制與十進制之間的轉換方法有哪些,今天讓我們一起來看看吧!
10進制和二進制之間的轉換分四步:
1、把十進制中的整數部分轉為二進制。把十進制數,用二因式分解,取它的余數。
例如,101/2=50,余數為1,50/2=25,余數為0,25/2=12,余數為1,12/2=6,余數為0,6/2=3,余數為0,3/2=1,余數為1,1/2=0,余數為1。
2、把相應的余數從低向高順著寫出來,如上的為1100101,即為101的二進制表示形式。
3、把十進制中的小數部分轉為二進制。 把小數不斷乘2,取整,直至沒有小數為止。注意不是所有小數都能轉為二進制的。
例如,0.75*2=1.50,取整數1,0.50*2=1,取整數1。
4、把相應的整數按順序就可得0.11。
要將二進制數為十進制數,只要反過來算就可以了。
人類算數采用十進制,可能跟人類有十根手指有關。亞里士多德稱人類普遍使用十進制,只不過是絕大多數人生來就有10根手指這樣一個解剖學事實的結果。實際上,在古代世界獨立開發的有文字的記數體系中,除了巴比倫文明的楔形數字為60進制,瑪雅數字為20進制外,幾乎全部為十進制。只不過,這些十進制記數體系并不是按位的。
二進制是計算技術中廣泛采用的一種數制。二進制數據是用0和1兩個數碼來表示的數。它的基數為2,進位規則是“逢二進一”,借位規則是“借一當二”,由18世紀德國數理哲學大師萊布尼茲發現。當前的計算機系統使用的基本上是二進制系統,數據在計算機中主要是以補碼的形式存儲的。計算機中的二進制則是一個非常微小的開關,用“開”來表示1,“關”來表示0。
20世紀被稱作第三次科技革命的重要標志之一的計算機的發明與應用,因為數字計算機只能識別和處理由‘0’、‘1’符號串組成的代碼。其運算模式正是二進制。19世紀愛爾蘭邏輯學家喬治布爾對邏輯命題的思考過程轉化為對符號"0''、''1''的某種代數演算,二進制是逢2進位的進位制。0、1是基本算符。因為它只使用0、1兩個數字符號,非常簡單方便,易于用電子方式實現。
二進制轉換成十進制的方法如下所示:
二進制轉十進制通用公式為:abcd.efg(2)=d*20+c*21+b*22+a*23+e*2-1+f*2-2+g*2-3(10)
解釋:要從右到左用二進制的每個數去乘以2的相應次方,小數點后則是從左往右。
例如:二進制數1101.01轉化成十進制。
1101.01(2)=1*20+0*21+1*22+1*23?+0*2-1+1*2-2=1+0+4+8+0+0.25=13.25(10)
規律:個位上的數字的次數是0,十位上的數字的次數是1,......,依次遞增,而十。
分位的數字的次數是-1,百分位上數字的次數是-2,......,依次遞減。
注意:不是任何一個十進制小數都能轉換成有限位的二進制數。
擴展資料:
十進制轉二進制
十進制整數轉換為二進制整數采用"除2取余,逆序排列"法。
具體做法是:用2整除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余數,如此進行,直到商為小于1時為止,然后把先得到的余數作為二進制數的低位有效位,后得到的余數作為二進制數的高位有效位,依次排列起來。
十進制化二進制時所除的2就是它的基數。談到它的原理,就不得不說說關于位權的概念。某進制計數制中各位數字符號所表示的數值表示該數字符號值乘以一個與數字符號有關的常數,該常數稱為 “位權 ” 。
位權的大小是以基數為底,數字符號所處的位置的序號為指數的整數次冪。十進制數的百位、十位、個位、十分位的權分別是10的2次方、10的1次方、10的0次方,10的-1次方。二進制數就是2的n次冪。
參考資料來源:百度百科-十進制轉二進制。
二進制數轉換成十進制數的方法如下:
1、正整數轉成二進制,除二取余,然后倒序排列,高位補零。將正的十進制數除以二,得到的商再除以二,依次類推知道商為零或一時為止,然后在旁邊標出各步的余數,最后倒著寫出來,高位補零就可以。
2、42除以2得到的余數分別為010101,然后倒著排一下,42所對應二進制就是101010。
3、計算機內部表示數的字節單位是定長的,如8位,16位,或32位。所以,位數不夠時,高位補零,所說,如圖3所示,42轉換成二進制以后就是。00101010,也即規范的寫法為(42)10=(00101010)2。
4、負整數轉換成二進制方法:先是將對應的正整數轉換成二進制后,對二進制取反,然后對結果再加一。還以42為例,負整數就是-42,如圖4所示為方法解釋。最后即為:(-42)10=(11010110)2。
5、小數轉換為二進制的方法:對小數點以后的數乘以2,取結果的整數部分(不是1就是0嘍),然后再用小數部分再乘以2,再取結果的整數部分??以此類推,直到小數部分為0或者位數已經夠了。然后把取的整數部分按先后次序排列,就構成了二進制小數部分的序列。
6、?如果小數的整數部分有大于0的整數時該如何轉換呢?如以上整數轉換成二進制,小數轉換成二進制,然后加在一起。
7、整數二進制轉換為十進制:首先將二進制數補齊位數,首位如果是0就代表是正整數,如果首位是1則代表是負整數。先看首位是0的正整數,補齊位數以后,將二進制中的位數分別將下邊對應的值相乘,然后相加得到的就為十進制,比如1010轉換為十進制。
8、若二進制補足位數后首位為1時,就需要先取反再換算:例如,11101011,首位為1,那么就先取反吧:-00010100,然后算一下10100對應的十進制為20,所以對應的十進制為-20。
9、將有小數的二進制轉換為十進制時:例如0.1101轉換為十進制的方法:將二進制中的四位數分別于下邊對應的值相乘后相加得到的值即為換算后的十進制,這樣二進制數轉換成十進制數的問題就解決了。
二進制轉化為十進制的計算方法為:1、無符號整數,從右往左依次用二進制位上的數字乘以2的n次冪的和(n大于等于0);2、帶符號的二進制整數,除去最高位的符號位(1為負數,0為正數),其余與無符號二進制轉化為十進制方法相同;3、小數二進制轉化為十進制數,從小數點后第一位上的二進制數字乘以2的負一次方加上第二位上的二進制數字乘以2的負二次方,以此類推第n位上的二進制數字乘以2的負n次方。
1、無符號整數二進制數轉化為十進制的方法。
無符號整數的二進制轉化為十進制數,從二進制數的右邊第一位起,從右往左,先用二制位置上的數乘以2的相應位數的冪,然后把每一位的乘積相加即可得到二進制數對應的十進制數。
【例題】把二進制數1101001轉化為十進制數。
解析:從二進制數1101001右邊第一位開始,第一位的數字是1,則有1=1,第二位的數字是0,則有0=0,第三位的數字是0,則有0=0,第四位數字是1,則有1=8,第五位數字是0,則有0=0,第六位數字是1,則有1=32,第六位數字是1,則有1=64。
再把所有積相加即可得1+0+0+8+0+32+64=105,故二進制數1101001轉化為十進制數是105。
2、帶符號二進制整數轉化為十進制數的方法。
帶符號的二進制數轉化為十進制數,先觀察二進制數最高位是什么數,如果是1,則表示是負數,如果是0則表示是正數,確定符號后再來轉化為十進制數。
【例題】把帶符號的二進制數10000000 00010000轉化為十進制數。
解析:帶符號的二進制數原碼,最高位代表的是符合位,我們先觀察最高位是1,則表示這個是負數,故可求得此二進制數對應的十進制數是-(0+0+0+0+1)=-16。
3、小數轉化為十進制數的方法
小數的二進制數轉化為十進制數的方法,從左往右,用二進制位數上的數字乘以2的負位數次冪,然后把所有乘積相加即可得。
【例題】把二進制1.1101轉化為十進制數。
解析:整數部分轉化為十進制數是1=1,
小數部分1+1+0+1=0.8125,
則二進制數1.1101對應的十進制數是1.8125。
一、十進制轉換為二進制;比如
10進制的15轉換2進制:
用15除以2,商為7,余數為1,
再用7除以2,商為3,余數為1,
再用3除以2,商為1,余數為1,
再用1除以2,商為0,余數為1,
最后吧余數倒過來排列就為二進制的1111(即商為0時的1,商為1時的1,商為3時的1,商為7時的1)
二、二進制轉十進制
1.以二進制的1111轉十進制為例:
2.把二進制的1111看成是十進制的1111即1*10^3+1*10^2+1*10^1+1。
3.然后把10變成2,即1*2^3+1*2^2+1*2^1+1=15。
二進制、十六進制數轉換為十進制數,挺簡單的,只要把二進制、十六進制數按權展開相加即可。 例:二進制1101轉換為十進制數 二進制1101按權展開形式如下: (1101)2=1×23+1×22+0×21+1×20=(8+4+0+1)10=(13)10結果為: (1101)2=(13)10 例:十六進制數FFFF轉換為十進制數 十六進制數F80F按權展開形式如下:(F80F)16=15×163+8×162+0×161+15×160=(61440+2048+0+15)10=(63503)10結果為: (F80F)2=(63503)10四、二進制數轉換為十六進制數 一位二進制數可以有兩種狀態0或者1,一位十六進制數有16種狀態0~9,A、B、C、D、E、F。也就是說4位二進制組合在一起才能完全表達一位十六進制數,24=16!簡言之,一位十六進制數等同于4位二進制數。我們先看4位二進制數是如何轉換位一位十六進制數的,然后擴展4位以上的二進制的轉換為十六進制數。 1、4位二進制數轉換為一位十六進制數 方法:把4位二進制數按權形式展開相加求和,即可。 例:把4位二進制數1010轉換為一位十六進制數 二進制數1010按權形式展開形式如下:(1010)2=1×23+0×22+1×21+0×20=(8+0+2+0)10=(10)10=(0A)16結果為: (1101)2=(0A)16例:把4位二進制數1001轉換為一位十六進制數(1001)2=1×23+0×22+0×21+1×20=(8+0+0+1)10=(9)10=(9)16結果為: (1001)2=(9)16觀察上兩例: (1010)2=(8+0+2+0)10 (1001)2=(8+0+0+1)10可知:4位二進制按權展開相加其實是位1所對應的權相加。 如二進制1010只有第四位,第二位為1,分別對應的權為23=8、21=2。 把(1010)2=(8+0+2+0)10形式簡便下為: (1010)2=(8+2)10=(10)10 (1001)2=(8+1)10=(9)10進一步觀察上兩式可知,在加數中出現某權,其對應的二進制位數碼一定是1。現在我們就得到一個更簡便的把二進制轉換位十六進制的方法:步驟:①、先找出4位二進制中為1的位,然后寫出其對應的權。②、把這些權寫成相加求和的形式,求出和即可。舉個例子,加深理解例 (0100)2轉換位十六進制數步驟:①、先找出4位二進制中為1的位,然后寫出其對應的權。二進制數0100,第三位為1,其權為22=4②、把這權寫成相加求和的形式,因只有一個權,即一個加數,我們沒必要寫成加數求和形式,該權就是結果,即(0100)2=(4)10=(4)16結果為 (0100)2=(4)162、 4位以上二進制數轉換為十六進制數 方法:把4位以上二進制數,從“右至左”,4個二進制組成一個部分,不足的用0補,然后按4位二進制轉換為一位十六進制的方法求解。例:二進制數10011010轉換為十六進制數 二進制數1001101從右至左,4位為一個部分形式如下: 0100 1101 ① ②(為方便說明,我把這兩部分左了標號,分別求出每部分的解) ①(0100)2 =(4)10=(0A)16 ②(1101)2 =(8+4+1)10=(13)10=(0D)16結果為(1001101)2=(0AD)16五、十六進制數轉換為二進制數 方法同二進制數轉換為十六進制數相反步驟:①、把一位十六進制寫成加數為23,22,21,20的一個多個相加的形式,即加數只能是8、4、2、1。②、加數中取到的權,其對應的位為1,反之為0。例:十六進制E轉化為二進制 步驟:①、把一位十六進制寫成加數為23,22,21,20的一個多個相加的形式,即加數只能是8、4、2、1。(0E)16=(14)10=(8+4+2)10。②、加數中取到的權,其對應的位為1,反之為0。該例取到23,22,21,其對應的位為1,即4位二進制中第四位、第三位、第二位,都位1,第一位為0。結果為:(0E)16=(1110)2多位16進制數轉換為按照前面一位十六進制數的轉換方法,一位一位的求!不繁瑣!這里就不舉例了! 到此進制的相互轉換就完了,我的經驗是,多練習,舉一反三!比用其他進制轉換的方法要簡便。不容易出錯!多多練習,大家共同學習,共同進步。
方法一:從右到左用二進制的每個數去乘以2的相應次方,小數點后則是從左往右。
例:二進制數1101.01轉化成十進制。
1101.01(2)
=1*2【0】+0*2【1】+1*2【2】+1*2【3】 +0*2【-1】+1*2【-2】
=1+0+4+8+0+0.25=13.25(10)
方法二:把二進制數首先寫成加權系數展開式,然后按十進制加法規則求和。這種做法稱為"按權相加"法。
對于有n位整數,m位小數的二進制數用加權系數展開式表示,可寫為:N(2)=an-1×2n-1+an-2×2n-2+??+a1×21+a0×20+a-1×2-1+a-2×2-2+??+a-m×2-m(10)式中aj表示第j位的系數,它為0和1中的某一個數。
例:二進制數1101轉化成十進制。
1101(2)
=1*2【3】+1*2【2】+0*2【1】+1*2【0】
=13(10)
注意:
1、【】括號內數字代表次方,如【2】為二次方,【-1】為負一次方。
2、()括號內代表進制數,(2)為二進制,(10)為十進制。
擴展資料:
以下為二進制轉是進制代碼:
int readint(int a)? //a 是傳入二進制位數。
int sum = 0;?
while (a--) {
sum *=2;
sum += getchar() - '0';? // getchar 讀入相應十進制的每一位。
return sum;? // sum 是相應的十進制。
參考資料來源:百度百科-十進制轉二進制。