由于标题假设我试图将十六进制数字(如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