В настоящее время написать программу для преобразования шестнадцатеричных в десятичные. Ниже мой код:Преобразование шестнадцатеричного в десятичное получить неверный результат
public class HexTest {
public static void main (String [] args) {
int z = 0xDeadCafe;
System.out.println("z = " + z);
}
}
Когда я запускаю свою программу, она показывает мне: z = -559035650
Однако, когда я проверить 0xDeadCafe
с помощью Hex в десятичные конвертер это дает мне другой результат, который 3735931646
. Могу ли я узнать, что-то не так с моим кодом и заставить меня получить неправильный результат?
Я понимаю, что вы имеете в виду, сейчас я уже изменить ИНТ долго, но он все равно дает мне подписанное значение. Могу ли я узнать, как получить значение без знака? – Ian
@Ian: Я показал две разные версии: либо используйте длинный литерал для начала, либо замаскируйте его длинным 32-битным набором. –
Спасибо. Оно работает. – Ian