把 1賦值給char,然後用16進製制顯示,可得到的是0xf f(8個f),這是為什麼?

時間 2021-05-11 23:32:35

1樓:C十十20年

對於簡單型別,printf實際上只接受2種位元組數的型別,類似int的4位元組或double的8位元組。其它型別會轉換為這些型別。這也是為何3被預設看作int常量、3.

2被看作double常量的原因,並且位元組數小於int的值常轉為int參加運算。參見《C++程式設計精要教程》

2樓:

對於printf來說,後面的引數要和最前面的格式化字串中的識別符號一一對應,對於格式化字串中的%x來說,後面的相應引數是整型(int)。於是有如下等式:

printf

("%#x,%#x",a

,p);// 原式

printf

("%#x,%#x",(

char)-

1,(unsigned

char)-

1);// 代入具體值

printf

("%#x,%#x",(

int)(

char)-

1,(int

)(unsigned

char)-

1);// 識別符號對應整型

printf

("%#x,%#x",(

int)(

char

)0xff,(

int)(

unsigned

char

)0xff

);// 十六進製制形式

printf

("%#x,%#x",(

int)

0xffffffff,(

int)

0x000000ff

);// 符號擴充套件

printf

("0xffffffff,0xff"

);//結果

為什麼python中將列表1賦值給列表2後將列表2順序反轉也會影響列表1?

酒罈壇兒 python中的變數本質都是指標變數,儲存的是資料在記憶體中的位址。所以你通過其中乙個變數對資料本身進行任何操作都會直接影響另乙個變數。 Gavin 其實問題的關鍵在於 第一,賦值其實只是複製了物件的引用,並沒有建立新的物件第二,操作物件是乙個可變物件對於ls1 1,2,3,4,5 語句,...

聽完老師的講課,然後把這個題自己給自己講一遍,有助於提提高數學成績嗎?(高中?

太空飛行員 當然有助於自己成績提公升了,不過最好是給別人講一遍,因為你永遠都不知道別人思考這個問題會提什麼問題。當你把別人奇奇怪怪的問題都解決了那你才是真的弄懂了這道題! 大佬愛走貓步 這個因人而異,有些人習慣用這樣的方法幫助自己學習。總之這樣做的效果肯定會是有的就看大不大。每個人都有一套屬於自己的...

哪些自己吃便宜食物,然後給寵物吃三文魚說把寵物當寶貝養,但是又經常會把寵物給閹了的人,到底是什麼心理?

丁叮 我以前也覺得絕育很殘忍,後面了解多了才知道是對貓好的,不懂別瞎噴。貓一歲左右發情,你給它配種的話那麼至少每年一窩吧,一窩2 4只,你能養一窩並且是養好的那種,養得起嗎?然後養大的貓繼續不絕育,繼續生?今年養一窩,明年養一窩?不自己養那就要麼送人 送走後也不知道會不會被好好對待 要麼殘忍的放出去...