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

時間 2021-12-23 07:55:25

1樓:匿名使用者

1、對計算機來說,某一個變數不管是char,int,它在儲存時都是二進位制的數字而已,輸出16進位制應該是在com_putchar中控制的,對於一個數來說,輸出的格式是幾進位制是程式來控制的,比如printf("%d", dl), 那麼送到終端顯示的是十進位制的,如果是%x就是16進位制,%o就是8進位制,但是在程式裡,dl就是一個數字而已。

2、例如:dh=0x07; dl=7;  x =  (dh << 8) | dl;

**********=

#include

main()

得:33

0x100

2樓:金色潛鳥

char 型就是 一位元組長度 的整型。

計算機內部,無所謂16,10,8,2進位制值,一律是2進位制。

你可以直接把它當 十進位制值 用於運算。

例如:dh=0x07; dl=7; x = (dh << 8) | dl;

**********=

下面例子,混合運算。

#include

main()

得:33

0x100

3樓:匿名使用者

dh,和dl分別是什麼型別的值啊?

那你要用於怎麼樣的計算?

既然是char型的就可以用於計算,比如dl='a'

那麼dl ++;dl就等於‘b'了

如果dl='1',而你想用1來計算的話

那麼(dl - '0')整體作為值來計算

4樓:

printf("%d", dl)

c語言中char型別陣列的輸出問題--輸出時為何需要&符?

5樓:墨汁諾

char a[20];

那麼a表示字元陣列的起始地址,它和&a[0]是一個意思。

使用printf()輸出字元陣列a的內容:

printf("%s\n", a);

就等同於printf("%s\n", &a[0]);

輸出的時候用:

int i = 0;

for (i=0; i<

防止緩衝區溢位可以用這樣的:

fgets(a, sizeof(a), stdin);

a[strlen(a) - 1] = '\0';

6樓:匿名使用者

你前面輸出格式為"%s"即字串型別,後面對第一個字元s[0]加&表示為取得整個字串的首地址,再以字串的格式肯定讀出的是整個字串,如果你把"%s"改為"%c"把&去掉就會輸出首字元,如果只把&去掉,那麼你是以字串的格式輸出首字元,格式不對當然是亂碼了

7樓:

printf("%s",s[0]); -- 不加&符號 s[0] 表示 整型值,數值等於s裡第一個字元(你的情況是h) 的 ascii 值,如果用%d 格式列印,得104,如果用%c 格式列印,得字母h, 用%s列印 得亂碼。

printf("%d",s[0]); 打出 104printf("%c",s[0]); 打出 h%s 輸出格式,用於字串,要求給 字串的首地址,char s 的首地址 是 &s[0] 或 s.

printf("%s",s); 打出打出打出打出 w are you....

8樓:匿名使用者

& 這個符號叫做取址運算子 標誌一個地址 對應前面的%s c語言基礎很重要! 一些細節要注意!

9樓:淦菀歐陽陽冰

query取得iframe中元素的幾種方法在iframe子頁面獲取父頁面元素

**如下:$(

10樓:我是菜狗

那當然%s要的是地址

如果你printf("%s",s); 也是一樣的

s是陣列的首地址

11樓:匿名使用者

記住c語言的nb之處在於在處理字串的時候使用一種超乎尋常的思維: 用一地址或字元指標就可以代表一字串!

當然,想列印一字串,也通過這種方式就可以獲得。

為什麼呢?

因為c語言內部的機制表明: 它對字串的處理是,遇到'\0',其實也就是0,就表明字串結束了,所以呢,不論這個指標在什麼位置都沒關係,編譯器會依次向後尋找字元,知道遇到null(或0或'\0')就算字串結束了。

12樓:

因為%s要的是一個地址 所以要這麼寫

也可以是s

c語言程式設計,輸入十進位制數輸出十六進位制和八進位制

13樓:園林植物手冊

可以通過下面的公式解決

#include

const int maxn = 128;

const int index8 = 8;

const int index16 =16;

int main()

while(m)

int i;

for(i = cot8 - 1; i >= 0; i--)printf("%d", array8[i]);

puts("");

for(i = cot16 - 1; i >= 0; i--)擴充套件資料:

十進位制轉十六進位制的具體方法:對於整數部分,用被除數反覆除以16,除第一次外,每次除以16均取前一次商的整數部分作被除數並依次記下每次的餘數。另外,所得到的商的最後一位餘數是所求二進位制數的最高位。

對於小數部分,採用連續乘以基數16,並依次取出的整數部分,直至結果的小數部分為0為止。故該法稱“乘基取整法”。

10進位制數轉換成十六進位制數,這是一個連續除以16的過程:把要轉換的數,除以16,得到商和餘數,將商繼續除以16,直到商為0。最後將所有餘數倒序排列,得到數就是轉換結果。

14樓:匿名使用者

可以格式化輸出。

#include

int main()

15樓:匿名使用者

#include

void showbit(int n)

printf("%d",n%2);

}void showoct(int n)

printf("%d",n%8);

}void showhex(int n)

printf("%d",n%16);

}int main()

16樓:著述的鴨子非了

#include

main()

while(n!=0);

for(i--;i>=0;i--)

putchar(s[i]);

} //十進位制轉八進位制 十六進位制方法類似#include

void main()

c語言關於字元變數輸出的問題

17樓:

佔3個(至少)字元位置,如果不足就用空格填充,過多的話就全部輸出。

18樓:

%3d中的3表式:輸出佔3列,如果少於3列則左補空格;如果多於3列則全部輸出

例如:int i=15;

printf("%3d",i);

輸出結果是: _ 15 (其中"_ "表式一個空格,空格+15剛好佔3列)

再如int i=1542;

printf("%3d",i);

輸出結果是: 1542 佔四列(大於3列,所以全部輸出).

19樓:風若遠去何人留

字元變數,也就是char型別的變數,有兩種輸出模式:

1 按照字元輸入。即輸出本身的字元,如果是'a',那麼就輸出a。

有兩種方法:

1) 用printf輸出。

%c格式符是用作char變數輸出的,如

char c = 'm';

printf("%c", c);

這樣就輸出m了。

2)用putchar輸出。

putchar 功能為輸出一個字元,所以

char c = 'm';

putchar(c);

同樣是輸出m。

2 輸出char變數的ascii碼值。

char變數儲存的本質為ascii碼,所以可以通過printf,用%d或%x輸出其值。

char c = 'm';

printf("%d, 0x%x\n", c, c);

會分別以10進位制和16進位制輸出m的ascii碼值,即77,0x4d

c語言字元陣列如何轉成16進位制

20樓:幻翼高達

需要準備的材料分別有:電腦、c語言編譯器。

1、首先,開啟c語言編譯器,新建一個內

初始容.cpp檔案,例如:test.cpp。

2、在test.cpp檔案中,輸入c語言**:

char *pkey = "aa1f1905a8f3e4d3c3c536fe615c93bc";

for (int i = 0; i < strlen(pkey) - 1; i += 2)

3、編譯器執行test.cpp檔案,此時成功將字串陣列轉為了16進位制的形式進行了輸出。

21樓:匿名使用者

#include

#include

#include

int main(void)

for(i=0;i

C輸出char問題,C 中定義char name 20 後,為什麼用printf s ,name 就能輸出一連串字串

如果你寫的是 cout a c 2 輸出 62我並不覺得奇怪。因為 a 的ascii碼是65,c 是67。相加是132。a c 的 結果型別 是int,因此它的十六進位制是0x00000084,最高位是0表示正數!你可以求sizeof a c 驗證一下,是4,int的大小 3.static case...

c語言char輸出字串是亂碼,C語言,字串輸出是亂碼

重點是creatlist這個函式,datac必須是malloc分配出來的記憶體,不然就會出問題.應該是這樣的 p pdata malloc 256 scanf s p pdata 傑大哥哈哈哈 asadrcvs5 2 f amng bkuqte lzlr kxojfrc eqsauzx 夫婿久離別,...

c語言輸出m,n區間素數的問題,C語言輸出 m,n 區間素數的問題

1 其後面緊跟的第一個語句塊,對本案例而言,是 if a i 0 2 這句話意思是,如果標誌位flag為真 c語言定義一切非零的數即為真 那麼跳過下面的語句直接繼續迴圈。你可以改成 if flag 1 continue 或者 if flag 0 continue 是一樣的效果。1 不寫大括號自動找第...