當前位置:首頁 » 編程語言 » c語言八進制
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言八進制

發布時間: 2022-02-06 05:08:27

Ⅰ 在c語言中整型常數可用十進制、八進制和______進制三種數製表示。

在C語言中整型常數可用十進制、八進制和十六進制三種數製表示。

1、八進制整常數必須以0開頭,即以0作為八進制數的前綴。數碼取值為0~7。八進制數通常是無符號數。

(1)以下各數是合法的八進制數:

015、0101、0135777。

(2)以下各數不是合法的八進制數:

252(無前綴0)、0386(包含了非八進制數碼)、-0127。

2、十六進制整常數的前綴為0X或0x。其數碼取值為0~9,A~F或a~f。

(1)以下各數是合法的十六進制整常數:

0X2A(十進制為42)、0XA0 (十進制為160)、0XFFFF (十進制為65535)。

(2)以下各數不是合法的十六進制整常數:

5A (無前綴0X)、0X3H (含有非十六進制數碼)。

3、十進制整常數沒有前綴。其數碼為0~9。

(1)以下各數是合法的十進制整常數:

235、-528、65535、1627。

(2)以下各數不是合法的十進制整常數:

023 (不能有前導0)、23D (含有非十進制數碼)。

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

C語言的數據類型包括:整型、字元型、實型或浮點型(單精度和雙精度)、枚舉類型、數組類型、結構體類型、共用體類型、指針類型和空類型。

C語言包含有各種控制語句僅有9種,關鍵字也只有32個,程序的編寫要求不嚴格且多以小寫字母為主,對許多不必要的部分進行了精簡。

實際上,語句構成與硬體有關聯的較少,且C語言本身不提供與硬體相關的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統所支持的各類庫進行編程,故C語言擁有非常簡潔的編譯系統。

C語言的運算非常靈活,功能十分豐富,運算種類遠多於其它程序設計語言。在表達式方面較其它程序語言更為簡潔,如自加、自減、逗號運算和三目運算使表達式更為簡單,但初學者往往會覺的這種表達式難讀,關鍵原因就是對運算符和運算順序理解不透不全。當多種不同運算組成一個運算表達式,即一個運算式中出現多種運算符時,運算的優先順序和結合規則顯得十分重要。

Ⅱ C語言 十進制數轉換八進制 演算法

  1. 方法一:直接使用控制字元串 %o 八進制%x

  2. 方法二:

    求余來算,比如求十進制數 x(x>100) 的8進制,先通過 x%8 可以得到個位(末位)上的數,當十進制數等於8時,必然會進位,求余的結果正好是不能進位的部分,x=x/8(這就像位移,x的8進制數向右移了一位),這樣已經求出來的 個位 位移後沒有了,原來的十位變成了個位,繼續把得到的x按上面的方式求末位,就能求出來十位,按照這種方式得到的 8進制數 是反的(先得到個位,再十位。。。),這樣很適合放到棧中,取得時候又會反過來,偽代碼可以這樣寫:

    while(x){

    printf("%d",x%n);//會列印出x轉換為 N進制數 從低位到高位上的每一位數

    x/=n;

    }

  3. 十進制轉換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; }

Ⅲ 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語言還會使用到八進制。

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

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

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

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

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

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

在C語言里,整數有三種表示形式:十進制,八進制,十六進制。
其中以數字0開頭,由0~7組成的數是八進制。以0X或0x開頭,由0~9,A~F或a~f 組成是十六進制。除表示正負的符號外,以1~9開頭,由0~9組成是十進制。
1.十進制:除表示正負的符號外,以1~9開頭,由0~9組成。如,128,+234,-278。
2,八進制:以0開頭,由0~7組成的數。如,0126,050000.
3,十六進制:以0X或0x開頭,由0~9,A~F或a~f 組成。如,0x12A,0x5a000.

Ⅵ C語言的八進制怎麼記

以0b開頭,後面接數字為二進制, 比如 0b10 是二進制數,等於10進制的 2
以0開頭,後面接數字為八進制, 比如 010 是八進制數,等於10進制的 8
以0x開頭,後面接數字為十六進制, 比如 0x10 是十六進制數,等於10進制的 16

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

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

Ⅷ C語言中,如何把十六進制或八進制的值賦給一個變數

怎樣把一個十六進制的值賦給一個變數?
c語言支持二進制、八進制、十進制和十六進制的計數系統,在表示一個數字時,用某個特殊的字元來區別其所屬的計數系統是必要的。在表示二進制數時,要在數字的末尾加上「b」(如101b);在表示八進制數時,要使用反斜杠(如\014);在表示十六制數時,要使用「0x」字元序列(如0x34);顯然,在表示十進制數時,不需要任何標識符,因為十進制是預設的計數系統。
要把一個十六進制的值賦給一個變數,你可以象下面這樣做:
int x ;
x=0x20; /* put hex 20(32 in decimal) into x */
x='0x20' ; / * put the ASCII character whose value is
hex 20 into x * /
只有了解了十六進制計數系統,你才能知道要賦的值應該如何表示,詳見20.24。
怎樣把一個八進制的值賦給一個變數?
把一個八進制的值賦給一個變數與把一個十六進制的值賦給一個變數一樣簡單:
int x ;
x=\033; / * put octal 33 (decimal 27) into x * /
x='\033' ; / * put the ASCII character whose value is
octal 33 into x * /

Ⅸ 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。

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

Ⅹ 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

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