❶ 二進制轉八進制的演算法
把二進制從低位到高位依次三個一組,最後不夠的高位補0, 再分別算成十進制數就可以了
如:
0111 1001 0110
分組
011 110 010 110
計算
3626
前面加0以標識是8進制
03626
(1)八進制演算法擴展閱讀:
進制轉換是人們利用符號來計數的方法。進制轉換由一組數碼符號和兩個基本因素「基數」與「位權」構成。
基數是指,進位計數制中所採用的數碼(數制中用來表示「量」的符號)的個數。
位權是指,進位制中每一固定位置對應的單位值。
二進制--->八進制
(11001.101)(二)
整數部分:從後往前每三位一組,缺位處用0填補,然後按十進制方法進行轉化, 則有:
001=1
011=3
然後我們將結果按從下往上的順序書寫就是:31,那麼這個31就是二進制11001的八進制形式
❷ 八進制轉化成二進制的演算法
八進制轉二進制是一位變三位,十六進制轉二進制是一位變四位,八進制→二進制 0→000 1→001 …… 7→111十六進制→二進制 0→0000 1→0001 …… F→1111
如果幫助到您,請記得採納為滿意答案哈,謝謝!祝您生活愉快! vae.la
❸ 將八進制(751)8轉換成二進制數.怎麼算我想要它的詳細演算法!先謝了!
變為二進制是111101001
演算法是7在二進制裡面是111,5是101,1是001
也就是八進制的一位在二進制里要用三個數來表示。
❹ C語言 十進制數轉換八進制 演算法
方法一:直接使用控制字元串 %o 八進制%x
方法二:
求余來算,比如求十進制數 x(x>100) 的8進制,先通過 x%8 可以得到個位(末位)上的數,當十進制數等於8時,必然會進位,求余的結果正好是不能進位的部分,x=x/8(這就像位移,x的8進制數向右移了一位),這樣已經求出來的 個位 位移後沒有了,原來的十位變成了個位,繼續把得到的x按上面的方式求末位,就能求出來十位,按照這種方式得到的 8進制數 是反的(先得到個位,再十位。。。),這樣很適合放到棧中,取得時候又會反過來,偽代碼可以這樣寫:
while(x){
printf("%d",x%n);//會列印出x轉換為 N進制數 從低位到高位上的每一位數
x/=n;
}
十進制轉換N進制:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef int INT;
typedef struct dd
{
INT data;
struct dd *next;
}LNode,*LStack;
LStack pushstack(LStack top,int x)
{
LStack p;
p=(LStack)malloc(sizeof(LNode));
if((x)!=-1) {p->data=(x); p->next=top; top=p;}
return top;
}
LStack outstack(LStack top,int *x)
{
LStack p=top;
*x=p->data;
top=p->next;
free(p);
return top;
}
main()
{
int x,n;
LStack top=NULL;
printf("請輸入原數及要轉換的進制:");
do{
scanf("%d%d",&x,&n); //輸入一個十進制數和要轉換的進制,比如3 2 得到1 }while(x>35||x<0||n<2);
while(x){ //這個循環把每一位放到棧中
top=pushstack(top,x%n);
x/=n;
while(top!=NULL)
{
top=outstack(top,&x);
if(x<10)
printf("%c",x+'0');
else
printf("%c",x+'A'-10);
}
return 0; }
❺ 八進制演算法、
以小數點兒為分隔, 對整數部分從右至左, 三位分一組, 對小數部分, 從左至右, 三位為一組, 注意小數部分最後一組不足三位應在尾部被0至三位, 將每一組轉換成八進制(其實也就是十進制), 每組得到的新的數字的順序不變,寫下來就是二至八進制的轉換. 例如:二進制(11011001.0100101) , 以小數點為分隔分組, 得 11, 011, 001 . 010, 010 100, 最後兩個零必須補,然後每組分別轉換 331.224, 這個就是對應的8進制.
❻ 8進制轉10進制演算法是什麼
八進制轉換為其他進制數的原則是:逢8進1。八進制化為十進制:例如八進制數1507轉換為十進制,7*8^0+0*8^1+5*8^2+1*8^3=839,結果是,八進制數1507轉換成十進制數為839。
一種以8為基數的計數法,採用0,1,2,3,4,5,6,7八個數字,逢八進1。一些編程語言中常常以數字0開始表明該數字是八進制。八進制的數和二進制數可以按位對應(八進制一位對應二進制三位),因此常應用在計算機語言中。
(6)八進制演算法擴展閱讀:
進制有時被用於計算而不是十六進制,也許最常在現代與文件許可權下Unix系統。它的優點是不需要任何額外的符號位數(十六進制系統是基數16,因此需要六個附加符號超出0-9)。它全部用於數字顯示。
在編程語言中,八進制文字通常與不同的前綴,包括數字0,字母o或q,digit-letter 0 o組合,或符號&[11]或美元。在摩托羅拉慣例,八進制數字加@前綴,而小字母o作為後綴添加,在英特爾公約。DR-DOS調試使用前綴編輯八進制數字。
❼ 8進制轉10進制,1011換成十進制怎麼算。要詳細的公式。
8進制1011換成十進制為521。
8進制轉10進制採用"按權相加"法,把八進制數首先寫成加權系數展開式,然後按十進制加法規則求和。即 8進制1011 =1x8^3+0x8^2+1x8^1+1x8^0=512+0+8+1=10進制521。
(7)八進制演算法擴展閱讀:
八進制廣泛應用於計算機系統,如PDP-8,ICL 1900和IBM大型機使用12位、24位或36位。八進制是這些基礎,因為他們的最理想的二進制字縮寫大小能被3整除(每個八進制數字代表三個二進制數字)。四、八到十二個數字可以簡明地顯示整個機器。
它也降低成本使得數字允許通過數碼管,七段顯示器,和計算器用於操作員控制台,他們在二進制顯示使用過於復雜,然而十進制顯示需要復雜的硬體,十六進制顯示需要顯示更多的數字。
❽ 八進制乘法如何計算
八進制的加減乘除的運算規則與二進制、十進制、十六進制都一樣,只是八進制是滿八向高位進一,或者高位的1相當於低位的八。
而二進制、十六進制是滿二、十六向高位進一,或者高位的1相當於低位的二、十六。
八進制的計數規則:
基數為8。
由8個數字組成,分別是0、1、2、3、4、5、6、7。
逢8進1,借1當8。
(8)八進制演算法擴展閱讀:
十進制化八進制
方法1:採用除8取余法。
例:將十進制數115轉化為八進制數
8| 115…… 3
8| 14 …… 6
8| 1 …… 1
結果:(115)10 = (163)8
方法2:先採用十進制化二進制的方法,再將二進制數化為八進制數
例:(115)10 = (1110011)2 = (163)8
❾ 八進制轉換成十六進制的演算法 請舉例說明
八進制數轉換為十六進制
轉換方法:以二進制位中介,即先將八進制數按照一位拆三位的方法轉換為二進制,在對這個二進制數使用四位合一位的方法轉換為十六進制。
如:將13.4O轉換為十六進制。
1、將13.4O轉換為二進制。轉換方法在本文的01部分,結果是1011.1B。
2、將第一步中的二進制數1011.1B轉換為十六進制。整數部分1011正好是四位,組成一組,轉換為十六進制是B(可先將1011按權展開得到一個十進制數是11,11對應十六進制的B)。小數部分只有一位,後面要補三個0,組成一組,1000,轉換為十六進制是8。所以,轉換為十六進制的結果是B.8H。
(9)八進制演算法擴展閱讀:
十六進制數轉換為八進制
轉換方法:以二進制位中介,即先將十六進制數按照一位拆四位的方法轉換為二進制,在對這個二進制數使用三位合一位的方法轉換為八進制。
如:將2BB.2EH轉換為八進制。
1、將2BB.2EH轉換為二進制。轉換方法在本文的02部分,結果是1010111011.0010111B。
2、將第一步中的二進制數1010111011.0010111B轉換為八進制。整數部分有10位,前面補兩個0,組成四組。小數部分有7位,後面要補兩個0,組成三組。轉換為八進制的結果是1273.134O。
❿ 二進制 八進制 十進制 十六進制 演算法 多舉幾個例子 詳細 謝謝
就是底和權位大小不一樣(分別是0-9,0-1,0-7,0-F)不一樣,其餘演算法都一樣,非常簡單,就是個簡單數字游戲
例如如十進制的100 這個數轉化如下
=1*10^2+0*10^1+0*10^0=100(十進)
=2^6+2^5+0*2^4+0*2^3+2^2 +0*2^0+0*2^0則為01100100(二進)
=8^2+4*8^1+4*8^0=144(八進)
=6*16^1+4*16^0=64(16進)