當前位置:首頁 » 編程軟體 » 編程十進制轉八進制

編程十進制轉八進制

發布時間: 2022-05-17 02:29:05

A. c語言程序十進制的數轉換成八進制的數

C語言程序十進制的數轉換成八進制的數的辦法:

#include <stdio.h>
#include <math.h>
void main()
{
int n,a,sum = 0,i =0;
printf("十進制輸出一個數n ");
scanf("%d",&n);
while(n)
{
a = n%8;
n = n/8;
sum += a*pow(10,i);
i++;
}
printf("八進制輸出sum:%d",sum);
}

B. 10進制數怎麼轉8進制

採用除8取余法。

C. 計算機二進制,十進制,八進制,十六進制怎麼轉換

十進制轉換:

所以轉換成的二進制數字為:100101

2、八進制到二進制:一個八進制的位拆分成一個三位的二進制數

比如:[八進制]616

6拆分成110

1拆分成 001

6拆分成 110

所以轉換成的二進制數字為:110001110

3、十六進制到二進制:一個八進制的位拆分成一個四位的二進制數

比如:[十六進制]616

6拆分成 0110

1拆分成 0001

6拆分成 0110

所以轉換成的二進制數字為:11000010110

八進制轉換:

1、十進制到八進制:除8取余數 最後把余數倒過來

同時我們也可以先將十進制轉換成二進制,然後將二進制又轉換成八進制

比如:2456 轉化成八進制數字:4630

2456/8=307,餘0;
307/8=38,餘3;
38/8=4,餘6;
4/8=0,餘4。
將所有餘數倒序相連,得到結果:4630。
因此十進制的2456轉換為八進制結果為4630。

2、二進制到八進制轉換 7=4+2+1 111 八進制最大的數字是7轉換成二進制剛好是111,佔3個位

每三個二進制數為一組,轉成一個八進制數位,如果二進制高位不足3位時,用零填補。

比如:10011011

010 011 011

2 3 3

因此二進制的10011011轉換為八進制結果為233。

十六進制轉換:

1、十進制到十六進制:除16倒著取余數

同時我們也可以先將十進制轉換成二進制,然後將二進制又轉換成十六進制

比如說:1610轉換成十六進制

直接轉16進制:
1610/16=100……10(A);
100 /16= 6……4;
6 /16= 0……6;

故:1610(10)=64A(16).

2、二進制到十六進制15=8+4+2+1 1111 十六進制最大數字是F,即15轉換成二進制1111,剛好佔4個位

每四個二進制數為一組,轉成一個十六進制數位,如果二進制高位不足3位時,用零填補。

比如:1110011011

0011 1001 1011

3 9 B

因此二進制的1110011011轉換為十六進制39B

拓展資料:

2進制,是供計算機使用的,1,0代表開和關,有和無,機器只認識2進制。

10進制,當然是便於我們人類來使用,我們從小的習慣就是使用十進制,這個毋庸置疑。

16進制,內存地址空間是用16進制的數據表示, 如0x8049324。

編程中,我們常用的還是10進制。

比如:int a = 100,b = 99;

不過,由於數據在計算機中的表示,最終以二進制的形式存在,所以有時候使用二進制,可以更直觀地解決 問題。但二進制數太長了。比如int 類型佔用4個位元組,32位。比如100,用int類型的二進制數表達將是:

0000 0000 0000 0000 0110 0100

面對這么長的數進行思考或操作,沒有人會喜歡。因此,用16進制或8進制可以解決這個問題。因為,進制越大,數的表達長度也就越短。

參考資料:

網路--二進制

D. 求一道編程題:將一個十進制數轉化成為一個八進制數

八進制就是逢8進1。
八進制數採用 0-7這八數來表達一個數。
八進制數第0位的權值為8的0次方,第1位權值為8的1次方,第2位權值為8的2次方…
所以,設有一個八進制數:1507,轉換為十進制為:
用豎式表示:
1507換算成十進制。
第0位 7 * 80 = 7
第1位 0 * 81 = 0
第2位 5 * 82 = 320
第3位 1 * 83 = 512 +
--------------------------
839
同樣,我們也可以用橫式直接計算:
7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839
結果是,八進制數 1507 轉換成十進制數為 839

將十進制數120轉換成八進制數。
用表格表示:
被除數 計算過程 商 余數
120 120/8 15 0
15 15/8 1 7
1 1/8 0 1

120轉換為8進制,結果為:170。

E. 用C編寫十進制數轉換八進製程序

其實我看你是了解一些八進制和c語法的,因為你使用了scanf("%o",&a);
但是你的代碼有很多很多的錯誤。。。不是一下就能說明的。舉些錯誤的地方吧:
1)
tra(a);不對,既然你的函數是int
tra(),而且返回了s,那麼應該是a=tra();
2)
s的初始值沒有,應該是int
s=0;吧,另外b這一變數貌似沒有用處。。。

最簡單的方法就是下面的代碼,你考慮的太復雜了,呵呵:

#include"stdio.h"
int
main()
{

int
a;

scanf("%o",&a);

printf
("%d\n",a);
}
當輸入10(8進制)的時候,會輸出8(10進制)。
望採納!

F. C 編程 把十進制數轉換成八進制數

/*
Description: 十進制數轉化成相應的二、八、十六或其它進制
*/
#include<stdio.h>
void convert(int num,int base);//列印轉換後的數字的函數原型

main()
{
int num,base;//num代表要轉換的數,base代表要轉換的進制

printf("Please input a decimal number:\n");
scanf("%d",&num);
printf("please input the base:\n");
scanf("%d",&base);//輸入要轉換的數字與進制

printf("The corresponding binary number is:");
convert(num,base);//調用列印轉換後的數字的函數

system("pause");
return 0;
}

void convert(int num,int base)//定義列印轉換後的數字的函數
{
int m=1,n,i=0;//m為試探小於數字的最大位值,b為進制的符號值,i為小於數字的最大位

while(m<=num)//試探求最大位值
m=m*base;

m=m/base;
while(m>0)//當位不為0時循環
{
n=num/m;
if(n<9)//由於轉換為大於十進制的進制時,會輸出字母,故判斷符號值是否大於10
printf("%d",n);
else
printf("%c",n-10+'A');

num=num%m;
m=m/base;
}
}

你要的八進制已經包括進去了!

G. 編程:輸入任意一個十進制數,將其轉換成八進制和十六進制的數輸出。

以下是c++的:
#include
using
namespace
std;
int
main()
{
int
a,b,c,d;
cout<<"請輸入待轉換的數:";
cin>>a;
//二進制分別計算每一位
if(a==0)cout<
b=a;c=0;d=1;
while(b!=0)
{
c+=(b%2)*d;//依次把b除以2的余數寫在c的對應位置上
b=b/2;
d*=10;
}
cout<
//八進制和十六進制使用格式化輸出即可,oct表示八進制,hex表示十六進制
cout<
cout<}

H. 用c語言編程把一個十進制數轉化為八進制數

先將十進制數轉換為二進制數,然後就是從低位開始,每三位對應一位,不足補0
比如-32的代碼是10101110(隨便寫的)
轉換之後就是256,前面一個不足三位,在最前面補0
010
101
110
2
5
6

熱點內容
隨時解壓 發布:2024-04-25 14:58:11 瀏覽:67
三率源碼 發布:2024-04-25 14:42:41 瀏覽:467
javastring轉string數組 發布:2024-04-25 14:42:10 瀏覽:136
飢荒如何更改密碼 發布:2024-04-25 14:42:02 瀏覽:743
百度雲如何解壓zip 發布:2024-04-25 14:38:57 瀏覽:570
母豬怎麼配置最好 發布:2024-04-25 14:35:47 瀏覽:75
php按鈕代碼 發布:2024-04-25 14:32:10 瀏覽:725
php數據類型轉換 發布:2024-04-25 14:15:17 瀏覽:750
windows調度演算法 發布:2024-04-25 14:14:28 瀏覽:456
下載喵星大作戰需要什麼配置 發布:2024-04-25 14:14:22 瀏覽:304