這個該怎么解?還有,c1=%c怎么樣轉化成單個字符?

uj5u.com熱心網友回復:
編譯后輸出結果如下:c1=a, c2=b
c1=97, c2=98
首先c1和c2是字符型別,并分別賦值為97和98
printf("c1=%c, c2=%c\n", c1,c2); //這行的意思是說用輸出函式printf把c1和c2用字符的方式輸出,雖然樓主并沒有給c1和c2賦值是什么字符,但是卻賦值了數字97和98,此時就涉及到一個叫ASCII碼的東西,在ASCII中某些字符和數字是一一對應的,而97對應字符a,98對應字符b,所以printf會輸出字符a和字符b。我知道樓主想刨根問底,至于為什么要這樣對應?這是約定好的。為什么會有這個叫ASCII的東西,您可以去百度百科看看,我也是剛學C語言不久,回答不了太多。
printf("c1=%d, c2=%d\n", c1,c2); //這行意思就是用printf函式把c1和c2以十進制的方式輸出,那就是輸出97和98了。
還有什么不懂的請繼續追問。
uj5u.com熱心網友回復:
為什么不自己試試呢?編程還是要多實踐的uj5u.com熱心網友回復:
超級感謝你,如果將程式第4/5行改為:
c1=197;
c2=198;
運行結果輸出的資訊是不是和“上溢位”(這個詞只是聽過)有關?這樣197-128=69對應E,198-128=70對應F
uj5u.com熱心網友回復:
試了只知道結果,不知道為啥
uj5u.com熱心網友回復:
溢位這個概念樓主最好先別去深究,這涉及到二進制運算,要了解清楚必須學好計算機組成原理中的原碼,補碼,反碼等相關知識,如果要在這里講的話就要打太多字了,您現在有個印象就好,實在想知道就去補充一下計算機組成原理的相關知識。uj5u.com熱心網友回復:
為什么不自己試試呢?編程還是要多實踐的
試了只知道結果,不知道為啥
通過結果不會倒推嗎?為什么會輸出這個結果,可以加一些debug資訊出來,比如16進制格式的怎么表示的,二進制是什么,等等
uj5u.com熱心網友回復:
溢位這個概念樓主最好先別去深究,這涉及到二進制運算,要了解清楚必須學好計算機組成原理中的原碼,補碼,反碼等相關知識,如果要在這里講的話就要打太多字了,您現在有個印象就好,實在想知道就去補充一下計算機組成原理的相關知識。
編譯后輸出結果如下:
c1=a, c2=b
c1=97, c2=98
首先c1和c2是字符型別,并分別賦值為97和98
printf("c1=%c, c2=%c\n", c1,c2); //這行的意思是說用輸出函式printf把c1和c2用字符的方式輸出,雖然樓主并沒有給c1和c2賦值是什么字符,但是卻賦值了數字97和98,此時就涉及到一個叫ASCII碼的東西,在ASCII中某些字符和數字是一一對應的,而97對應字符a,98對應字符b,所以printf會輸出字符a和字符b。我知道樓主想刨根問底,至于為什么要這樣對應?這是約定好的。為什么會有這個叫ASCII的東西,您可以去百度百科看看,我也是剛學C語言不久,回答不了太多。
printf("c1=%d, c2=%d\n", c1,c2); //這行意思就是用printf函式把c1和c2以十進制的方式輸出,那就是輸出97和98了。
還有什么不懂的請繼續追問。
超級感謝你,如果將程式第4/5行改為:
c1=197;
c2=198;
運行結果輸出的資訊是不是和“上溢位”(這個詞只是聽過)有關?這樣197-128=69對應E,198-128=70對應F
謝謝你,現在懂了
uj5u.com熱心網友回復:
為什么不自己試試呢?編程還是要多實踐的
試了只知道結果,不知道為啥
通過結果不會倒推嗎?為什么會輸出這個結果,可以加一些debug資訊出來,比如16進制格式的怎么表示的,二進制是什么,等等
謝謝,現在會玩了
uj5u.com熱心網友回復:
%c就是用來輸出字符的轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/37766.html
標籤:C語言
上一篇:vs2013新建的C++MFC專案就報錯。求大神指點,一點沒寫代碼,新建完運行就報錯
下一篇:zlib壓縮成功 解壓失敗
