由於標題假設我試圖將十六進制數字(如0x320000dd)轉換爲十進制數字。 我的代碼僅適用於正數,但在表示負數的十六進制數字時會失敗。這裏是我的代碼片段:在十進制數字中正確轉換十六進制數字(也是負數)
cin>>hex>> x;
unsigned int number = x;
int r = number & 0xffffff;
我的輸入是十六進制的alreay,並且計算機自動將它轉換爲整數。我想要做的是獲得十六進制數的操作數,所以最後24位。 你能幫我讓我的代碼工作負值:0x32fffdc9或0x32ffffff?非常感謝!
編輯:
,我想我的輸出是: 0x32fffdc9 - > -567 或 0x32ffffff - > -1
所以只是普通的十進制值,而是它給了我16776649和16777215爲上面的例子。
@kiner_shah十六進制最可能是std :: hex。 – Borgleader
@Borgleader,明白了! :-) –
哦,我很抱歉,我錯過了告訴你,我包括'使用名稱空間標準;'在我的代碼中。所以std :: hex不會改變任何東西,對吧? :) – Jennan