d與x的輸出為什麼是一樣的,在c語言中p,d和x的區別是什麼?

2021-03-03 21:12:28 字數 4379 閱讀 5413

1樓:匿名使用者

%x 表示以十六進位制輸出,並不是表示你引數就是位址

printf("int num d->= %d\t int num x-> = %x\n", num, &num);

& 取變數的位址

c語言進製轉化 輸入是%d 輸出%o 和%x 但是輸入3 5之類的一位數 都只會輸出原數 這是為什

2樓:匿名使用者

%o表示八進位製數,用0~7的數字表示

%x表示十六進位制,用0~9和a~f這十六個字元表示

小於8的數,轉換為八進位制和十六進位制當然還是他自己

3樓:匿名使用者

%o是8進製

%x是16進製制 10-15由a-f (a-f)表示

小於基數(8,16)的當然是按原數輸出啊!

在c語言中 %p ,%d和%x 的區別是什麼?

4樓:娜lucky哈哈

%p 是以16進製制的形式輸出記憶體位址。

%x 也是以16進製制的形式輸出記憶體位址。

不過%p的輸出字元為8個前2個為00。

%x只有6個。

%d 可以輸出整數。

也可以以10進製的形式輸出。

%d 是有符號。

%x 是無符號。

舉個例子:

用8個2進製位表示-1為11111111轉成無符號型就是2的9次方減1了。

%p是專用來處理指標的吧,而%x對列印的資料都可以,感覺差不多,就是用%p的時候列印出來都是8個資料的。

計算機儲存的都是2進製,當然也可以用%d列印位址,列印指標,指標就是用來存放位址的

%u當然很大了,因為%d表示負數的時候(2進製)第1位是1。

5樓:匿名使用者

% p不要前導0,也就說前面的0會被自動去掉也可以用%08x列印出來跟%p一樣的實際上是一樣的,不過%p是專用來處理指標的吧,而%x對列印的資料都可以,感覺差不多,就是用%p的時候列印出來都是8個資料的計算機儲存的都是2進製,當然也可以用%d列印位址,列印指標,指標就是用來存放位址的位址需要符號麼-_-#%u當然很大了,因為%d表示負數的時候(2進製)第1位是1,舉個例子:用8個2進製位表示-1為11111111轉成無符號型就是2的9次方減1了

在c語言中 %p ,%d和%x 的區別

6樓:匿名使用者

%x不要前導0,也就說前面的0會被自動去掉也可以用%08x列印出來跟%p一樣的

實際上是一樣的,不過%p是專用來處理指標的吧,而%x對列印的資料都可以,感覺差不多,就是用%p的時候列印出來都是8個資料的

計算機儲存的都是2進製,當然也可以用%d列印位址,列印指標,指標就是用來存放位址的

位址需要符號麼-_-#

%u當然很大了,因為%d表示負數的時候(2進製)第1位是1,舉個例子:

用8個2進製位表示-1為11111111轉成無符號型就是2的9次方減1了

在c語言中 %p ,%d和%x 的區別%p 是以16進製制的形式輸

7樓:匿名使用者

%p用來輸出指標

%x用來輸入int 型別。

二者都是16進製制值輸出

如果是32位系統 那麼沒區別

如果是64位系統 那麼 %p會輸出8位元組資料。 而%x只能輸出4位元組資料。

也就是說

32位系統 %p等效於%x

64位系統 %p等效於%lx

int a=21,b=021;printf("%x,%d",a,b);輸出結果為15,17.為什麼?

8樓:匿名使用者

a=21 這個是十進位制值.

b=021這個是8進製值,其10進製值為17輸出的時候 %x輸出a, %x是16進製制形式, a的16進製制是0x15, 所以這裡輸出15

%d輸出b, %d是10進製形式,所以輸出17.

9樓:匿名使用者

整型 a==21; 是十進位制

的,當你按照十六進位制格式輸出,則輸出15,(21 = 1*16 + 5)你定義 b==021 以0開頭,是八進位制的形式,因此,b的真實值為17(整型的);因為,八進位制的21轉化為十進位制為17,(17 = 2*8 + 1)

10樓:匿名使用者

輸出的a 是 10進製的a=21轉換為16進製制 所以得到的答案16進製表示的15輸出的b 是 8進製的b=021轉換為10進製 所以得到的答案10進製的17

11樓:匿名使用者

就是樓上說的進製轉換,所以結果就是你說的15 17

c語言中"%x,%o"輸出是什麼?

12樓:唐寒夜

用在scanf函式bai中,"%x,%o"表示%x對應的第乙個du變zhi量dao接收乙個十六進位製數,回

再接收乙個逗號不賦給任何答

變數,最後接收乙個八進位製數賦給%o對應的變數。字母大小寫均可。

用在printf函式中,"%x,%o"中的%o控制符是錯誤的,因為有的編譯器只認%o不認%o,就是說在printf中是分大小寫的。%x對應輸出大寫字母的十六進位製數,%x對應輸出小寫字母十六進位製數;中間逗號照搬輸出,%o對應輸出八進位製數。

1、這一類符號是「格式說明」

2、用於格式輸入與格式輸出,就是我們常見的printf和scanf函式中在輸入輸出時,對不同型別的資料(如int,float,char等)要使用不同的格式說明。

(1)%d,用來輸出十進位制整數。

(2)%f,用來輸出實數(包括單,雙精度),以小數形式輸出。

(3)%c,用來輸出乙個字元。

(4)%s,用來輸出乙個字串。

13樓:匿名使用者

c語言中%x的意思是

bai以十六進位製數形式輸du出整數,zhi類似%x的輸出格

dao式還有:

1.%c:單個版

字元2.%d:十進權制整數

3.%f :十進位制浮點數

4.%o:八進位製數

5. %s :字串

6.%u:無符號十進位製數

7.%%:輸出百分號%

14樓:

用在scanf函式中,

bai"%x,%o"表示%x對應的du第乙個變數接收乙個十六zhi進製數,再接收乙個逗dao號不賦給版任何變數,最後接收乙個八

權進製數賦給%o對應的變數。字母大小寫均可。

用在printf函式中,"%x,%o"中的%o控制符是錯誤的,因為有的編譯器只認%o不認%o,就是說在printf中是分大小寫的。%x對應輸出大寫字母的十六進位製數,%x對應輸出小寫字母十六進位製數;中間逗號照搬輸出,%o對應輸出八進位製數。

15樓:匿名使用者

%x是指以16進製製數輸出%o是指以8進製數輸出

%mf中的m為指定輸出欄位的寬度.如果資料的位數小於m,則左端補以空格,若大於m則按實際位數輸出!

其他的的輸出格式符都可以這麼用:%d,%c....

16樓:匿名使用者

%x 格式化為16進製制的字串

%o 格式化為8進製的字串

%4.2f 格式化浮點數為寬度為4保留小數點2為的字串見msdn printf函式說明

17樓:匿名使用者

%x輸出八進位製數,,%o輸出十六進位製數

c語言,為什麼%o和%x輸出的都是無符號數,為什呢不能有負數

18樓:匿名使用者

不是說不能有負數,如果使用%x和%o輸出時,應該先把你的資料轉為二進位制的形式,然後再轉為8進製或者是16進製制,這樣轉出來的數是不會帶+-號的,而是根據實際在記憶體中存放的資料來顯示

c語言中%d和%d是一樣的嗎

19樓:倒霉熊

是不一樣的。

%d 有符號10進製整數 %ld 長整型 %hd短整型%hu 無符號短整形 %u無符號整形 %lu無符號長整形

%i 有符號10進製整數 (%i和%d 沒有區別,%i 是老式寫法,都是整型格式。)

%o 無符號8進製整數

%u 無符號10進製整數

%x 無符號的16進製制數字,並以小寫abcdef表示

%x 無符號的16進製制數字,並以大寫abcdef表示%f:輸入輸出為浮點型 %lf雙精度浮點型

%e/e 用科學表示格式的浮點數

%g 使用%f和%e表示中的總的位數表示最短的來表示浮點數 g 同g格式,但表示為指數

%c 輸入輸出為單個字元

%s 輸入輸出為字串

沒有見過%d的寫法,能告訴 這個是幹什麼的嗎???

在可輸出的範圍內int和char一樣的(c語言)

int 是2位元組 16位處理器 或4位元組 32 64 char 是1位元組。當int 表達0 127 的時候,他只用了乙個位元組的空間,另外的位元組並沒用使用 而char 位元組是只有乙個位元組的大小,所以這個 的意思為在int表達0 127的時候,他和char的值是一樣的,而且是正常的。但是可...

c語言為什麼輸出的值一直是,c語言為什麼輸出的值一直是

default這個加上,還有個就是精度問題 include int main printf g n y return 0 c語言輸出的值永遠是0.000000000000000 順序流程問題。一開始你沒給a b c d賦值就執行d a b c。此時d的結果是垃圾值。然後你接下來用鍵盤給a b c賦值...

C語言單向迴圈連結串列,輸出的最後元素為什麼是垃圾值,求大神幫我改動一下,真心感謝

void displist linklist l printf n 輸出乙個新dao 行符。求c語言大神解一下這道簡單的連結串列題 10 description 給定一串數字,用連結串列結構進行儲存。然後給定針對該連結串列的若干插入操作,要求將執行插入操作後的結果輸出。input 第一行 輸入乙個整...