當前位置:首頁 » 編程語言 » c語言8進制
擴展閱讀
sqldelete用法 2022-01-21 14:43:27

c語言8進制

發布時間: 2022-01-15 09:43:37

c語言中的八進制

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

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

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

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

(1)c語言8進制擴展閱讀

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

#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語言中 怎樣區分八進制 十進制 二進制

編程語言
通常規定是以0
開頭

數字

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

Ⅲ c語言中十六進制和八進制的格式

16進制以0x開頭,後面跟數字0~9或字母A~F(小寫也可以)。如:0x2D(16進制數2D)
8進制以0開頭,後面跟數字0~7。如:045(8進制數45)
如果使用printf函數輸出時,可以通過格式數明符來控制輸出格式。
舉例如下:
int x=23;
printf("%x", x); // 以16進制格式輸出,輸出17;
printf("%o", x); // 以8進制格式輸出,輸出2。

(3)c語言8進制擴展閱讀:
C語言是國際上廣泛流行的、很有發展前途的計算機高級語言。它適合作為系統描述語言,即可用來編寫系統軟體,也可用來編寫應用軟體。
早期的操作系統等系統軟體主要是用匯編語言編寫的(包括
UNIX操作系統在內)。由於匯編語言依賴於計算機硬體,程序的可讀性和可移植性都比較差。為了提高可讀性和可移植性,最好改用高級語言,但一般的高級語言難以實現匯編語言的某些功能(匯編語言可以直接對硬體進行操作),例如:對內存地址的操作、位操作等)。人們設想能否找到一種既具有一般高級語言特性,又具有低級語言特性的語言,集它們的優點於一身。於是,C語言就在這種情況下應運而生了。

Ⅳ c語言裡面 %d是十進制 %o是八進制 %x是十六進制 %多少是二進制

c語言中沒有表示二進制的字元,但是你可以根據十進制、八進制或者十六進制轉換一下。

可以利用短除法,將十進制轉變成二進制,我們一般的思路是這樣的,下面給出一個例子:

把20轉換成二進制:
20/2=10........余數為0 最低位
10/2=5..........余數為0
5/2=2............余數為1
2/2=1............余數為0
1/2=0............余數為1 最高位
則20換成二進制後是10100

利用短除法可以輕松地將十進制轉換成二進制,在編程中是這樣用的,以下給出代碼:

(4)c語言8進制擴展閱讀:

在做數據讀寫傳輸時最常用也最直觀的莫過於十進制數,但是在不同應用場合、存儲的方便在C語言開發時候也常採用二進制、八進制和十六進制存儲數據。

進制是一種計數機制,對於任何一種進制,如:xx進制,就表示某一位置上的數運算時逢 xx 進一位。例如:時間60′60′,分鍾就會加 1,這就是六十進制。計算機中常用的進制有二進制、八進制、十進制、十六進制。

下面給出一個使用C語言編程實現任意進制數(2-16進制)轉換為其他任意進制數(2-16進制)的小程序代碼:

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

int TenNum(char a[],int B); //將輸入的數字轉換成10進制數

void Numchange(int m, int B); //將轉換好了的10進制數轉換為所需進制數

int TenNum(char a[], int B)

{

int len, i, num;

int sum = 0;

len = strlen(a); //求得字元串長度

for (i = 0; i < len; i++)

{

if (a[i] >= '0' && a[i] <= '9')

num = a[i] - '0';

else if (a[i] >= 'A' && a[i] <= 'F')

num = a[i] - 'A' + 10;

sum = sum * B + num;

}

return sum;

}

void Numchange(int m, int B)

{

int n;

if (m)

{

Numchange(m / B, B);

n = m % B;

if (n < 10)

printf("%d", n); //小於10直接輸出

else

printf("%c", n + 55); //大於10轉換成字元輸出

}

}

int main()

{

int B, b;

char a[20];

printf("請輸入待轉換數的進制(2-16):");

do {

scanf_s("%d", &B);

} while (B < 2 && B > 16);

printf("請輸入待轉換數:");

getchar();

gets_s(a); //將輸入的n進制數存放在數組a中

int m = TenNum(a, B); //將輸入的數字轉換成十進制數

printf("請輸入需要轉成幾進制數(2-16):");

do {

scanf_s("%d", &b);

} while (B < 2 && B > 16);

printf("%d進制數%s轉換為%d進制數的結果為:",B,a,b);

Numchange(m, b); //將十進制數轉換為所需進制數

printf(" ");

system("pause");

return 0;

}

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

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

Ⅵ C語言中如何換算八進制=進制=十六進制

最簡單的辦法:
將數據換算成10進制(除2取余法),然後再用fprintf直接列印就好了

如下:
1 #include <stdio.h>
2 int
3 main(void)
4 {
5 int n=8;
6 fprintf(stdout,"八進制是:%o\n十六進制是:%x\n",n,n);
7
8 return 0;
9 }

如果還有問題,歡迎來http://groups.google.com/datastream來討論

Ⅶ c語言中-1的八進制值是多少

c語言中-1的八進制值是37777777777

先轉化為二進制1111 1111 1111 1111,然後二進制轉八進制,從右邊起,每三位一組,每組對應一個八進制數,如,以一位元組為例:

10101011(B) = 10 101 011 = 253(O)

所以,32個1對應的八進制數就是37777777777

(7)c語言8進制擴展閱讀:

二進制化為八進制:

整數部份從最低有效位開始,以3位一組,最高有效位不足3位時以0補齊,每一組均可轉換成一個八進制的值,轉換完畢就是八進制的整數。

小數部份從最高有效位開始,以3位一組,最低有效位不足3位時以0補齊,每一組均可轉換成一個八進制的值,轉換完畢就是八進制的小數。

Ⅷ C語言中,%o八進制輸出,怎麼算的,能說具體嗎

1、首先打開Microsoft Visual C++軟體,新建好文件後,輸入如下內容。

Ⅸ C語言, 怎麼輸入八進制數

C語言中scanf()函數支持輸入整數時按8進制進行輸入,如:

#include<stdio.h>
voidmain(void)
{
intx;
scanf("%o",&x);//按8進制輸入
printf("hex:%#X,dec:%d,oct:%#o ",x,x,x);//按16進制10進制8進制進行數據輸出
}

scanf()函數還支持按16進制輸入,格式串為:%x

Ⅹ C語言中八進制和16進制怎麼表示

一、八進制由 0~7 八個數字組成,使用時必須以0開頭(注意是數字 0,不是字母 o),例如:

//合法的八進制數

int a = 015; //換算成十進制為 13

int b = -0101; //換算成十進制為 -65

int c = 0177777; //換算成十進制為 65535

//非法的八進制

int m = 256; //無前綴 0,相當於十進制

int n = 03A2; //A不是有效的八進制數字

二、十六進制由數字 0~9、字母 A~F 或 a~f(不區分大小寫)組成,使用時必須以0x或0X(不區分大小寫)開頭,例如:

//合法的十六進制int a = 0X2A; //換算成十進制為 42

int b = -0XA0; //換算成十進制為 -160

int c = 0xffff; //換算成十進制為 65535

//非法的十六進制

int m = 5A; //沒有前綴 0X,是一個無效數字

int n = 0X3H; //H不是有效的十六進制數字

二進制化為八進制

整數部份從最低有效位開始,以3位一組,最高有效位不足3位時以0補齊,每一組均可轉換成一個八進制的值,轉換完畢就是八進制的整數。

小數部份從最高有效位開始,以3位一組,最低有效位不足3位時以0補齊,每一組均可轉換成一個八進制的值,轉換完畢就是八進制的小數。

例:(11001111.01111)2 = (011 001 111.011 110)2 = (317.36)8

以上內容參考:網路-八進制