首頁(yè)
社區(qū)
課程
招聘
為何會(huì)出現(xiàn)這個(gè)問(wèn)題
QZ2019 2022-6-26 1383

收藏
1條回答
0346954 2022-7-1 2022-7-1編輯

因?yàn)?x88 0x99 0xff 都是負(fù)數(shù),如0x88 二進(jìn)制為1000 1000 作為一個(gè)char的話 屬于負(fù)數(shù),0x88是一個(gè)字節(jié)的數(shù)據(jù),調(diào)用printf時(shí),0x88需要擴(kuò)展為4字節(jié)的數(shù)據(jù)(如果是32位程序的話),擴(kuò)展時(shí)0x88高位為1 所以高位三字節(jié)都補(bǔ)1,查看匯編代碼如下:
圖片描述

 

如果想正常輸出,可以在printf中讓0x88作為一個(gè)unsigned char輸出如printf("0x%x\n", unsigned char(0x88)); 如下:
圖片描述

回復(fù)
  參與學(xué)習(xí)     人
  提問(wèn)次數(shù)     100 個(gè)
我的問(wèn)答 領(lǐng)取收益
0
我的提問(wèn)
0
我的回答
0
學(xué)習(xí)收益