十進制:整數部分:(11011)2 = 1*2^4+1*2^3+0*2^2+1*2^1+1*2^0=27 小數部分:(.110)2 = 1*2^-1+1*2^-2+0*2^-3 = 0.75 合併(11011)2 = (27.75)D 八進制:整數部分:每三位一組,從個位往上依次截取,最後不足三位補0 11011→011011 011=1*2^
本文我們將從以下幾個部分來詳細介紹如何將二進制數轉換為八進制數:手動轉換、轉換的快捷方式和變體題型、5 參考
二進制和八進制是計算機技術常用的不同數制。它們有不同的基數,二進制是二,而八進制是八,這意味着兩者必須分組才能轉換。這種轉換聽起來很複雜,但實際操作起來要簡單得多。第一部分:手動轉換
二進制與十進制之間的轉換 1 十進制轉二進制 方法為:十進制數除2取餘法,即十進制數除2,餘數為權位上的數,得到的商值繼續除2,依此步驟繼續向下運算直到商為0為止。 (具體用法如下圖) 2 二進制轉十進制 方法為:把二進制數按權展開、相加即
第1步:識別二進制數字。
八進制: 10011010 拆分10、011、010 二進制 八進制 10 2 011 3 010 2 所以二進制10011010轉化成八進制就是232 十六進制: 10011010 拆分1001、1010 二進制 十六進制 1001 9 1010 B 所以 二進制10011010轉發成十六進制就是9B
二進制數是隻有1和0的字符串,如101001、001,甚至是1。你看到的這類字符串通常都是二進制數。但是,有些書籍和老師為了避免混淆,會在二進制數後面加個下標”2”,如10012,把它和數字“一千零一”區分開來。
1、二進制轉為八進制 110110010.100101(2)→110'110'010.100'101(2)=662.45(8)。 2、二進制轉為十進制 110110010.100101(2)=1*2^8+1*2^7+0*2^6+1*2^5+1*2^4+0*2^3+0*2^2+1*2^1+0*2^0+1*2^(-1)+0*2^(-2)+0*2^(-3)+1*2^(-4)+0*2^(-5)+1*2^(-6) =25
這個下標表示數字的“基數”。二進制是以二為基數的數制,而八進制則以八為基數。
十進制轉換: 1234[10進制] 0 1 2 3 4 5 6 7 8 9 0 當數位上的值超過9就要進1 1000+200+30+4=1*103+2*102+3*101+4*100=1234。 21011[2進制] 0 1 當數位上的值超過1就要進1 1*23+0*22+1*21+1*20=8+0+2+1=11。 1011[8進制]0 1 2 3 4 5 6 7 當數位
第2步:從最右邊開始,將二進制數中的所有1和0分成三個一組。
轉化成十六進制為:36e.d4,轉化為八進制為:1556.65。 一、二進制轉換成十六進制數 將二進制數從小數點開始分別向左(整數部分)和向右(小數部分)每4位分成一組,不足4位時,對原數值用0補足4位。再將每一組數轉換成十六進制數碼中的一個數字
二進制數中只有兩個不同的數字,而八進制數中只有八個。由於,所以你需要三個二進制數來表示一個八進制數。從右邊開始分組。例如,二進制數101001可以分成101 001
是2166。 10001110110轉換成八進制過程如下: 三位一隔,最高位不足3位的,前面補0 010,001,110,110 2.使用8421位權值換算: 110就是6 001就是1 010就是2 所以最終結果是2166。 二進制到八進制的轉換方法: 從低位到高位,把每3位二進制數轉
。
第3步:如果最左邊沒有足夠的位數來構成一組,可以在左邊加零。
是2166。 10001110110轉換成八進制過程如下: 三位一隔,最高位不足3位的,前面補0 010,001,110,110 2.使用8421位權值換算: 110就是6 001就是1 010就是2 所以最終結果是2166。 二進制到八進制的轉換方法: 從低位到高位,把每3位二進制數轉
二進制數10011011有八位,儘管不是三的倍數,仍然能夠轉換為八進制數。在前面的那組數中添加額外的零,直至滿足三個一組的條件即可。例如:
轉換成二進制:11010111 轉換成八進制:327 步驟: 1、轉換成二進制: 215/2=107..1 107/2=53..1 53/2=26..1 26/2=13..0 13/2=6..1 6/2=3..0 3/2=1..1 1/2=0..1 所以結果為11010111 2、轉換成八進制: 整數部分除8取餘
原有的二進制數:
二進制轉8進制或16進制可以直接用BCD碼就是8421算法。有效位乘以BCD碼,如101101001(2)轉換8進制就是3位一組先分開101 101 001 然後分別算出第一組101=1乘4加0乘2加1乘1。結果就是5(8)剩下兩組一樣的方法結果就是551(8)。 轉換16進制就是4
10011011
二進制轉換成八進制 每三位二進制數相當於一個八進制數 從後面開始劃,三位一段,最前面不足三位的添0 比如: 1011011101 就可以分成四個3位的 001,011,011,101 然後把每三個數按421的數加起來,就是: 001就是0+0+1,011是0*4+1*2+1=0+2+1,101=1*4+0*
分組: 10 011 011 八進制以 8為底 例如 8進制的531 我們可以先轉換為10進制 5是百位 所以 5*8^2=320 3是十位 所以 3*8^1=24 1是個位 所以 1*8^0=1 因此 531=320+24+1=345 然後我們可以把 345 轉換為2進制 逆轉10進制到8進制 和 10進制到2進制方法一樣 只是把底換 添加額外的零,把它變成三個一組: 八進制與十六進制之間的轉換有兩種方法: 第一種:他們之間的轉換可以先轉成二進制然後再相互轉換。 第二種:他們之間的轉換可以先轉成十進制然後再相互轉換。 例如一個十六進制數053977,將其轉換成二進制001 010 011 100 101 110 111,再將該 010 011 011 從最低位開始,每3個二進制數成一組(最左邊的那組,不夠3個就用0補足),然後將每一組轉換為八進制數。 比如:1010111 第一步分組:001 010 111 第二步轉換:1 2 7 所以得到的結果就是127 第4步:在每組的三個數字下寫上4、2、1,來標記佔位符。 八進制每位對應二進制3位 1000110110B=[001][000][110][110]B=[1][0][6][6]o=1066o 每組中的三個數字各代表八進制中的一個位置。第一個數字代表4,第二個代表2,第三個代表1。為了直觀一點,你可以將這些數字寫到二進制數的每組三個數字下。例如: 二進制10110轉換成八進制數字是26,二進制轉八進制,就是把二進制數劃成3位一組,一組對應一個八進制數。 具體計算過程:10110可以分成成010和110兩組數。那麼010計算就是0+2+0等於2,110計算就是4+2+0等於6,然後組合起來,那麼對應的結果就是2 010 011 011 從最低位開始,每3個二進制數成一組(最左邊的那組,不夠3個就用0補足),然後將每一組轉換為八進制數。 比如:1010111 第一步分組:001 010 111 第二步轉換:1 2 7 所以得到的結果就是127 421 421 421 請輸入一個8進制數 : 145 (145)8 -> (1100101)2 Press any key to continue ************************************************** #include char *fun(int num,char *s) { char ch,*p = s; int i,n = 0; while(num) { p[n++] = (num&1) + '0'; n 001 421 110 010 001 1556 由於2的3次方等於8,八進制和二進制之間的轉化是三次方的關係,可以把二進制數分段轉化,也就是從後向前開始,三位三位的轉化。 例如: 1101101110=1 101 101 110=1 5 5 6 421 421 421 請輸入一個8進制數 : 145 (145)8 -> (1100101)2 Press any key to continue ************************************************** #include char *fun(int num,char *s) { char ch,*p = s; int i,n = 0; while(num) { p[n++] = (num&1) + '0'; n 注意,如果想使用更快捷的方式,你可以跳過本步驟,直接在八進制換算表中查找二進制數組。 二進制數101110轉換為等值的八進制數的是56,轉換方法就是把二進制數分成三位一組來表示八進制數。 具體轉換過程:101110可以分成兩組,101和110,。101表示的八進制數是1乘以2的2次方加上1乘以2的0次方等於5,110表示的八進制數是1乘以2的2次方 第5步:如果任何佔位符上的數字是一,就寫下數字(4, 2或1),來把它轉換為八進制數。 將254.625分成整數和小數兩部分轉換: 254/16=15,餘數14,十六進制形式為E,對應的二進制數為1110 15/16=0,餘數15,十六進制形式為F,對應的二進制數為1111 254d=FEh=11111110h=376o。 0.625*16=10.0,整數10,十六進制形式為A,對應的二進制 如果”4”的上面是一,那麼八進制數就要加4。如果1的上面是0,那麼八進制數就不用加一,你可以留空、寫一個零或畫一條橫槓。例如: 154(o)=1101100(b) 轉換方法: 八進制轉化為二進制就是從左到右,依次把每一位轉化為二進制。 因為8等於2的3次方,所以一個八進制位轉化為三個二進制位。 轉換步驟: 154中的1表示成三個二進制位:001,5表示成三個二進制位:101,4表示成三個二 問題: 將1010100112轉換為八進制數。 分成三個一組: 101 010 011 添加佔位符: 101 010 011 421 421 421 請輸入一個8進制數 : 145 (145)8 -> (1100101)2 Press any key to continue ************************************************** #include char *fun(int num,char *s) { char ch,*p = s; int i,n = 0; while(num) { p[n++] = (num&1) + '0'; n 標出每一位數字: 101 010 011 421 421 421 401 020 021 第6步:將新的數字每三個一組相加求和。 知道八進制數中各位的數字後,將每組的三個數字分別相加即可。因此,101變成4, 0和1, 相加後得到5 ,因為。繼續解以上例題: 問題: 將1010100112轉換為八進制數。 分組,添加佔位符,標出每位數字: 101 010 011 421 421 421 401 020 021 三個一組相加: 第7步:將新轉換的答案放到一起,形成最終的八進制數。 拆分二進制數字只是為了方便解題,原有數字是一個單獨的字符串。所以,完成轉換後,將所有數字放到一起,就得到了最終答案。這就是完整的解題步驟。 問題: 將1010100112轉換為八進制數。 分組,添加佔位符,標出每位數字,加總: 101 010 011 5 — 2 — 3 將轉換後的數字合到一起: 523 第8步:加上下標8,完成轉換。 缺少正確的符號時,我們無法確切地知道523到底是八進制數,還是普通的十進制數。為了讓老師知道你有認真做題,請在答案後加上下標8,來標明它使用的是以8為基數的八進制數制。 問題: 將1010100112轉換為八進制數。 轉換: 523。 最終答案: 5238 第二部分:轉換的快捷方式和變體題型 第1步:使用簡單的八進制換算表來節省時間,減少計算量。 考試時無法參考換算表,但在其他時候這卻是一個好選擇。由於可能的數字組合只有8種,所以這個換算表實際記憶起來也很簡單。你需要做的只是將數字分成三個一組,然後將它們與圖中的表格進行比對即可。 注意,數字8和數字9沒有直接對應的轉換數字。在八進制中,這兩個數字並不存在,因為在以八為基數的數制中,每位數字只有八種可能,即0-7。 第2步:處理小數時,保留小數點不變,以它為起點,向兩邊處理。 假設你要將二進制數字10010.11轉換為八進制數字。通常情況下,你應該從右到左地將數字分成三個一組。但是有小數點時,你需要從小數點開始。所以,對於小數點左邊的數字(10010),你需要從右到左地把它分成(010 010)。對於小數點右邊的數字,你需要從左到右地進行處理,得到(110)。添加零時,應在分組處理結束的位置添加。最後分解成010 010 .110。 101.1 → 101 .100 1.01001 → 001 .010 010 1001101.0101 → 001 001 101 .010 100 第3步:使用八進制換算表來將八進制數轉換回二進制數。 反向轉換時,你需要用到換算表,除非對八進制非常熟悉且逐個思考每種組合,否則簡簡單單的數字“3”無法為你提供足夠的信息來進行轉換。使用以下表格就能輕鬆地將每位八進制數轉換成三個二進制數,然後將它們合到一起即可: 0 → 000 1 → 001 2 → 010 3 → 011 4 → 100 5 → 101 6 → 110 7 → 111 小提示 分解數字時要慢慢來。最好用一張留有大片空白的草稿紙。 參考 http://www.robotroom.com/NumberSystems4.html http://www.robotroom.com/NumberSystems4.html http://coolconversion.com/math/binary-octal-hexa-decimal/_binary__101010011__octal_ http://www.robotroom.com/NumberSystems2.html http://www.robotroom.com/NumberSystems4.html 擴展閲讀,以下內容您可能還感興趣。 將二進制數10001110110轉換成八進制數是多少? 是2166。 10001110110轉換成八進制過程如下: 三位一隔,最高位不足3位的,前面補0 010,001,110,110 2.使用8421位權值換算: 110就是6 001就是1 010就是2 所以最終結果是2166。 二進制到八進制的轉換方法: 從低位到高位,把每3位二進制數轉換成一位八進制數即可。 由於2的3次方等於8,八進制和二進制之間的轉化是三次方的關係,可以把二進制數分段轉化,也就是從後向前開始,三位三位的轉化。 二進制數轉換為對應的十進制、八進制和十六進制數,C語言? #include <stdio.h> #include <string.h> char s[128]; int main(){ printf("Input a binary number:"); gets(s); int len,i,n=0; len=strlen(s); for (i=0; i<len; i++) { if(s[i]=='1'){ n<<=1; n|=1; } else{ n<<=1; } } printf("The number is %d in decimal.\n",n); printf("The number is %o in octal.\n",n); printf("The number is %X in octal.\n",n); }本回答被提問者和網友採納 將十進制數215轉換成二進制8進制數是 轉換成二進制:11010111 轉換成八進制:327 步驟: 1、轉換成二進制: 215/2=107.....1 107/2=53.....1 53/2=26.....1 26/2=13.....0 13/2=6.....1 6/2=3.....0 3/2=1.....1 1/2=0.....1 所以結果為11010111 2、轉換成八進制: 整數部分除8取餘。 215/8=26.....7 26/8=3.....2 3/8=0.....3 所以結果為327 擴展資料: 二進制:215除2取餘數,再除2取餘數···一直除到0或1,然後所有餘數倒序排列就是所得二進制 八進制:同理215除8···一直除到小於8,所得餘數倒序。 二進制計算方式:除2取餘法,餘數倒排數即可。 八進制計算方式:除8取餘法,餘數倒排數即可。 二進制數和八進制數十六進制數怎麼轉換??? 二進制轉8進制或16進制可以直接用BCD碼就是8421算法。有效位乘以BCD碼,如101101001(2)轉換8進制就是3位一組先分開101 101 001 然後分別算出第一組101=1乘4加0乘2加1乘1。結果就是5(8)剩下兩組一樣的方法結果就是551(8)。 轉換16進制就是4位一組,不夠4位前面加零。還是用101101001介紹,分開後就是0001 0110 1001前面不夠4位補零即可。第一組就是1不用算,第二組就是0乘8加1乘4加1乘2加0乘1結果就是6(16)整體轉換後就是169(16)。 這樣明白了嗎? 二進制怎麼轉為八進制,舉個例子 二進制轉換成八進制 每三位二進制數相當於一個八進制數 從後面開始劃,三位一段,最前面不足三位的添0 比如: 1011011101 就可以分成四個3位的 001,011,011,101 然後把每三個數按421的數加起來,就是: 001就是0+0+1,011是0*4+1*2+1=0+2+1,101=1*4+0*2+1=4+0+1 得到四個數:1,3,3,5 所以二進制 1011011101得到的八進制數就是:1335 換16進制也一樣