c語言中輸出八進位制數時為什麼不加o,如k 17 printf

2021-04-08 23:57:57 字數 5049 閱讀 8345

1樓:晨夜語

將十進位制的17變為八進位制是21,由於printf("%o",k)中%o表示將十進位制的數變為八進位制的數,也就是說你輸入十進位制,計算機會輸出八進位制。所以不用加o了,因為%o已經宣告瞭輸出的數是八進位制的了。

2樓:匿名使用者

如果想加o可以寫:printf("o%o\n",k);想加什麼在輸出格式中給出即可,不給出當然不顯示了。

3樓:陽光上的橋

%o是八進位制,八進位制的21換算為10進位制就是17,過程2*8+1=17

c語言,怎麼讓printf,%o輸出的八進位制數前面帶0

4樓:匿名使用者

有兩種方式。

1 自動輸出格式。

在c語言中,可以通過

printf("%#o", var);

的格式,將var以8進位制形式輸出,並在前面自動加格式0.

2 手動新增。

%#o並不是所有的c語言都支援這種格式,如果不支援,可以手動新增0,即

printf("0%o", var);

5樓:劉文正粉絲

把%o中間加個#和一個05,%05#o.16進位制同樣如此.

6樓:

好辦喲……

printf("%05o\n",1953);

printf("%05o\n",195);

printf("%05o\n",19);

printf("%05o\n",1);

7樓:匿名使用者

#include

int main(void)

8樓:匿名使用者

printf("0%o", num);

9樓:hero六三零零

你可以試試用%0o,

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

10樓:匿名使用者

%o為8進位制輸出,其實就是將後續引數的值,轉換為8進位制形式,然後進行輸出。

計算的時候,實際上就是把10進位制數轉為8進位制。

轉換方法為除8取餘法,具體如下:

1 整數部分除以8,記錄餘數;

2 判斷商是否為0,如果為0,則執行3,否則繼續執行1;

3 從最後一個餘數向前排列,得到結果。如圖:

11樓:匿名使用者

因為計算機裡負數全是補碼的形式,沒有正碼,所以-1其實在計算機裡是以補碼的形式出現的。

負數的補碼計演算法則如下:

-1,其實就是 1 000000000000001 第一個1為符號位,1代表「-」號,0代表「+」號,

後面的是數值,為1,求它的補碼,先將數值部分取反,符號位不變,就變成 111111111111110,在對新的數值部分加1,就變成111111111111111

了,換算成八進位制就是77777,再把前面的符號位加上,就是:

177777了。

至於補碼規則為什麼是取反加1呢,計算機就是這麼規定的。

12樓:米嵐

計算是用位計算

比如:十進位制8換成2進位制:00 001 000

然後從右到左3位一組,每組按2進位制換十進位制算,得10(逢八進一),應為8進位制不允許出現8及以上的所以,取3位

13樓:

(1 111 111 111 111 111)2=(177777)8

說明,從右向左,將二進位制3位一組,每一組對應一位8進位制,111對應7。

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

14樓:靜物描寫

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

int a = 015; //換算成十進位制為 13int b = -0101; //換算成十進位制為 -65int c = 0177777; //換算成十進位制為 65535十六進位制

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

//合法的十六進位制

int a = 0x2a; //換算成十進位制為 42int b = -0xa0; //換算成十進位制為 -160int c = 0xffff; //換算成十進位制為 65535拓展資料:

二進位制數、八進位制數和十六進位制數的輸出

c語言中常用的整數有 short、int 和 long 三種型別,通過 printf 函式,可以將它們以八進位制、十進位制和十六進位制的形式輸出。

15樓:失蹤的板栗

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。

16樓:夏天肥魚

1、八進位制以0開頭,後面跟數字0~7。如:045(8進位制數45)如果使用printf函式輸出時,可以通過格式數明符來控制輸出格式。

例如:int x=23;printf("%x", x);  // 以16進位制格式輸出,輸出17;printf("%o", x);  // 以8進位制格式輸出,輸出2。

2、十六進位制以0x開頭,後面跟數字0~9或字母a~f(小寫也可以)。如:0x2d(16進位制數2d)。

c語言是國際上廣泛流行的、很有發展前途的計算機高階語言。它適合作為系統描述語言,即可用來編寫系統軟體,也可用來編寫應用軟體。早期的作業系統等系統軟體主要是用組合語言編寫的(包括 unix作業系統在內)。

17樓:裸木空

如果使用printf函式輸出時,可以通過格式數明符來控制輸出格式。

舉例如下:

intx=23;

printf("%x",x);//以16進位制格式輸出,輸出17printf("%o",x);//以8進位制格式輸出,輸出2716進位制0x234這樣的(如24就是0x018,凡是以0x或0x開頭的數字序列)

8進位制01111這樣的(凡是以0開頭的數字序列)十六進位制和八進位制的賦值輸出技巧

一 賦值

int dex = 100;// 預設十進位制int oct = 0144;// 八進位制,以0開始int hex = 0x64;// 十六進位制,以0x開始二 輸出

void show(int x)

例如:int num = 100;

show(num);

輸出結果:

dec = 100; octal = 144; hex = 64dec = 100; octal = 0144; hex = 0x64

18樓:匿名使用者

資料以八進位制0或十六進位制0x開頭

%o 八進位制

%x 十六進位制

19樓:

這樣吧int a=0xff; //十六進位制

int b=010; //八進位制

20樓:匿名使用者

16進位制0x234這樣的(如24就是0x018,凡是以0x或0x開頭的數字序列)

8進位制01111這樣的(凡是以0開頭的數字序列)

21樓:匿名使用者

它和十進位制挺相似,我的理解就是,幾進位制就是到了幾,然後進一位。

c語言中%o是什麼意思?

22樓:匿名使用者

%o意思是以八進位制整型式輸出整數。c語言中對於不同型別的資料用不同的格式字元。

x格式符,以十六進位制數形式輸出整數。

u格式符,用來輸出unsigned型資料,即無符號數,以十進位制形式輸出。

c格式符,用來輸出一個字元。

s格式符,用來輸出一個字串。

擴充套件資料

%[scanfset]scanfset 有兩種形式:一種是以非 「^」 字元開頭的 scanset , 表示在讀入字串時將匹配所有在 scanfset 中出現的字元,遇到非scanfset 中的字元時輸入就結束。

另外一種形式是以 「^」 字元開頭的scanfset ,表示在讀入字串時將匹配所有不在scanfset 中出現的字元,遇到scanfset 中的字元輸入就結束。

scanf(「%[^\n]」,str);//遇到回車鍵時字串輸入結束,可使scanf接收空格等特殊字元。

23樓:我是果瘋

這一類符號是「格式說明」也叫佔位符。%o對應輸出八進位制數。

格式佔位符(%)是在c/c++語言中格式輸入函式,如scanf、printf等函式中使用。其意義就是起到格式佔位的意思,表示在該位置有輸入或者輸出。

24樓:鄒賢果陶

'\0'此處為零,在c語言中'\0'代表ascii碼為0的字元,ascii碼為0的字元不是一

個可以顯示的字元,而是一個「空操作符」,即它什麼也不做。可以用它來表示字串結束標誌不會產生附加的操作或增加有效字元,只起一個供辨別的作用。

25樓:

%o--表示八進位制整數的

格式化形式;

%d--表示十進位制整數的格式化形式;

%x--表示十六進位制整數的格式化形式;

示例程式:

#include

int main()

26樓:尚思彤姬鑠

因為是int型別的函式,必須要有一個返回值,函式的返回值

為0表示,在函式當執行到該語句時,函式執行結束。

27樓:約_束

控制輸出語句為八進位制形式

28樓:布魯斯飛得更高

指的是輸出八進位制的數字!

c語言中十六進位制和八進位制的格式,c語言裡面 d是十進位制 o是八進位制 x是十六進位制 多少是二進位制

八進位制八進位制由 0 7 八個數字組成,使用時必須以0開頭 注意是數字 0,不是字母 o 例如 int a 015 換算成十進位制為 13int b 0101 換算成十進位制為 65int c 0177777 換算成十進位制為 65535十六進位制 十六進位制由數字 0 9 字母 a f 或 a ...

C語言的問題,char型輸出的16進位制數值怎麼輸出十進位制值來

char 型就是 一位元組長度 的整型。計算機內部,無所謂16,10,8,2進位制值,一律是2進位制。你可以直接把它當 十進位制值 用於運算。例如 dh 0x07 dl 7 x dh 8 dl 下面例子,混合運算。include main 得 33 0x100 1 對計算機來說,某一個變數不管是ch...

c語言中void函式什麼時候返回數什麼時候不返回

用在函式名前,表示沒有返回值 用在函式引數列表中,表示沒有形參 用在指標前,表示指標可以指向任何型別 在c語言中怎樣表示一個數的 n 次方 c語言中計算一個數的n次方可以用庫函式pow來實現。函式原型 double pow double x,double y 舉例如下 double a pow 3....