2012-06-29 71 views
1

我有一個字符變量,我只對兩個最不重要的十六進制值感興趣。我如何放棄其他價值?例如:如何獲得C++中字符的最低有效位

char input = 0xFFFFFFD1; 

我想:

output = 0xD1;  

我想:

output = (input&0x000000FF); 

但比我剛剛得到:

output = 0xFFFFFFD1 

我如何解決這個難題?

+0

將您的代碼放在這裏! – trumpetlicks

+0

一塊代碼將是有用的 –

回答

2

很可能您的平臺上的char是8位。在這種情況下,這樣的:

char input = 0xFFFFFFD1; 

是與此相同:

char input = 0xD1; 

我還假設outputint類型。在這種情況下,您需要:

int output = (unsigned char)input & 0xFF; 

演示:http://ideone.com/FOdRG

[如果這不是問題,那麼您需要更新您的問題以包含您使用的實際代碼。]

+0

謝謝,使輸出一個int和輸入無符號解決了問題! – Marty

相關問題