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

八進位編程

發布時間: 2022-06-08 09:11:13

① 怎樣用c語言編程讓八進制轉換為十進制。

.二進制與十進制的轉換
(1)二進制轉十進制
方法:"按權展開求和"
例:
(1011.01)2
=(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10
=(8+0+2+1+0+0.25)10
=(11.25)10
(2)十進制轉二進制
·
十進制整數轉二進制數:"除以2取余,逆序輸出"
例:
(89)10=(1011001)2
2
89
2
44
……
1
2
22
……
0
2
11
……
0
2
5
……
1
2
2
……
1
2
1
……
0
0
……
1
·
十進制小數轉二進制數:"乘以2取整,順序輸出"
例:
(0.625)10=
(0.101)2
0.625
X
2
1.25
X
2
0.5
X
2
1.0
2.八進制與二進制的轉換
例:將八進制的37.416轉換成二進制數:
37

4
1
6
011
111
.100
001
110
即:(37.416)8
=(11111.10000111)2
例:將二進制的10110.0011
轉換成八進制:
0
1
0
1
1
0
.
0
0
1
1
0
0
2
6
.
1
4
即:(10110.011)2
=(26.14)8
3.十六進制與二進制的轉換
例:將十六進制數5DF.9
轉換成二進制:
5
D
F

9
0101
1101
1111.1001
即:(5DF.9)16
=(10111011111.1001)2
例:將二進制數1100001.111
轉換成十六進制:
0110
0001

1110
6
1

E
即:(1100001.111)2
=(61.E)16
參考資料:http://222.214.195.26/aoshai/szzh.htm

② 用函數編程:輸入一個八進制數,用函數將其轉換成相應的十進制數,並在main函數中調用該函數。

#include<stdio.h>

int o2d(char s[])

{int i,x=0;

for(i=0;s[i];i++)

if(s[i]>='0'&&s[i]<='7')x=x*8+s[i]-'0';

else

{

printf("error! ");

return -1;

}

return x;

}

int main()

{char s[20];

scanf("%s",s);

printf("%d ",o2d(s));

getch();

return 0;

}

③ 求八進制轉化為十進制的c語言思路及編程

思路:對於所有的八進制數符,按乘權求和的思想就可以實現轉化。

#include<stdio.h>

int main()

{int x=0,c;

printf("請輸入一個八進制數:");

scanf("%c",&c);

while(c>='0'&&c<'8')

{x=x*8+c-'0';

scanf("%c",&c);

}

printf("十進制數為:%d ",x);

return 0;

}

④ C語言編程,輸入十進制數輸出十六進制和八進制

#include <stdio.h>
#define N 8
void tran(int num,int k)
{
int arr[N],i;
for (i=0;i <N;i++)
{
arr[i]=num%k;
num=num/k;
if (num==0)
break;
}
printf("轉換為%d進制數為: ",k);
for (;i>=0;i--)
switch (arr[i])
{
case 10: printf("A");break;
case 11: printf("B");break;
case 12: printf("C");break;
case 13: printf("D");break;
case 14: printf("E");break;
case 15: printf("F");break;
default: printf("%d",arr[i]);
}
printf(" ");
}
int main()
{
int num,choo;
loop: printf("請選擇功能:0.退出 1.十進制轉二進制 2.十進制轉八進制 3.十進制轉十六進制 ");
scanf("%d",&choo);
switch (choo)
{
case 1:
printf("請輸入要轉換的十進制數:");
scanf("%d",&num);
tran (num,2);
goto loop;
case 2:
printf("請輸入要轉換的十進制數:");
scanf("%d",&num);
tran (num,8);
goto loop;
case 3:
printf("請輸入要轉換的十進制數:");
scanf("%d",&num);
tran (num,16);
goto loop;
case 0:break;

default :
printf("輸入有誤!請重新輸入! ");
goto loop;
}
}

拓展資料

C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。

盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。

二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言制定了一套完整的美國國家標准語法,稱為ANSI C,作為C語言最初的標准。 目前2011年12月8日,國際標准化組織(ISO)和國際電工委員會(IEC)發布的C11標準是C語言的第三個官方標准,也是C語言的最新標准,該標准更好的支持了漢字函數名和漢字標識符,一定程度上實現了漢字編程。

C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。

其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

(參考資料 網路 C語言)

⑤ C語言中的八進制

除了二進制,C語言還會使用到八進制。

八進制是一種「逢八進一」的進制,它由 0~7 八個符號來描述。同樣,此處通過十進制和八進制的對比來描述八進制的表示方式。

八進制基數為8,加法運算時逢八進一,減法運算時借一當八。例如,數字 0、1、5、7、14、733、67001、25430 都是有效的八進制。

當使用八進製表示十進制數字8時,由於表示八進制的符號只有 0~7,因此,根據逢八進一的規則,需要向高位進一位,表示為10。同理,使用八進製表示十進制數字16時,繼續向高位進一位,表示為 20。

(5)八進位編程擴展閱讀

八進制轉換為十進制的源代碼如下

#include<stdio.h>

void main()

{

char *p,s[6];int n;

p=s;

printf("Please input a Octal number:");

gets(p);

n=0;

while(*(p)!='')

{

n=n*8+*p-'0';

p++;

}

printf("Octal number to Decimal number:%d",n);

}

⑥ C語言八進制詳解

八進制是以8為基數的一種計數系統。在八進制系統中,你是這樣計數的:O,1,2,3,4,5,6,7,10,ll,12,13,等等。下面比較了八進制(第二行)和十進制(第一行)中的計數過程: O,l,2,3,4,5,6,7,8,9,10.11,12,13,14,15,16 0,1,2.3,4,5,6,7,10,11,12,13,14,15,16,17,20 注意,在八進制中,在數到7後,就要增加一個八進制位,第二個八進制位顯然就是8?(等於十進制的8)。如果你數到第三個八進制位(八進制的100),那將是8?或十進制的64,因此,八進制的100等於十進制的64。 現在,八進制已經不象以前那樣常用了,這主要是因為現在的計算機使用的是8,16,32或64位處理器,最適合它們的計數系統是二進制或十六進制(見20.24中有關十六進制計數系統的介紹) C語言支持八進制字元集,這種字元要用反斜杠字元來標識。例如,在C程序中,下面的語句並不少見: if(x=='\007')break; 這里的"\007"恰好就是ASCII值為7的字元;該語句用來檢查終端鳴笛字元。另一個常見的八進制數是"\033",即Escape字元(在程序中它通常表示為"\033")。然而,八進制數現在已經很少見了——它們被十六進制數代替了。

⑦ 為什麼C語言中要用到八進制

c語言中,0256用八進制輸出為:256
256用八進制輸出為:400
因為,c認為以0開頭的數值是八進制的,而不帶任何前綴的數值默認為十進制。

⑧ C語言中 怎樣區分八進制 十進制 二進制

編程語言通常規定是以0開頭的數字是八進制數,以0x開頭的數字是十六進制數,其餘的就是十進制數,至於你說的「十進制是D表示 二進制是B 十六進制是H」在編寫程序時是不能用的,那隻是為了方便,書寫時(不是在計算機上編程時)用到的(只對於C語言編程,匯編語言編程時,是寫上的),你的程序 int x=011中,x是用八進製表示的一個數字,他是9.後面的printf("%d\n",++x);是以10進制形式列印結果(%d的作用),所以程序運行的結果是9.

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

以下是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<}

熱點內容
如何設置強緩存的失效時間 發布:2025-05-19 15:21:28 瀏覽:694
winxp無法訪問 發布:2025-05-19 15:19:48 瀏覽:946
文件預編譯 發布:2025-05-19 15:14:04 瀏覽:643
怎麼在伺服器上掛公網 發布:2025-05-19 15:14:02 瀏覽:272
濟南平安e通如何找回密碼 發布:2025-05-19 14:56:58 瀏覽:175
安卓手機如何找到iccid碼 發布:2025-05-19 14:46:51 瀏覽:227
編譯的內核為什麼那麼大 發布:2025-05-19 14:45:21 瀏覽:179
什麼控制壓縮 發布:2025-05-19 14:28:13 瀏覽:930
網路伺服器忙指什麼 發布:2025-05-19 14:28:10 瀏覽:189
伺服器有外網ip 發布:2025-05-19 14:02:02 瀏覽:833