【发布时间】:2013-12-06 07:22:21
【问题描述】:
我需要以十六进制格式读取 32 位数字。当我输入一个负值时,我得到一个输入不匹配异常。只要数字是正数(00000000 ~ 7FFFFFFF),一切都会正常工作,但任何负数(80000000 ~ FFFFFFFF)都会失败。
System.out.println("Enter first number in hexadecimal format: ");
Scanner readX = new Scanner(System.in);
int a = readX.nextInt(16);
我尝试了各种格式(FFFFFFFF、0xFFFFFFFF、-FFFFFFFF、-7FFFFFFFF、~FFFFFFFF),结果相同。
有什么想法吗?我觉得我一定错过了一些明显的东西,但我完全被难住了!
【问题讨论】:
-
只是想知道,你试过
-1吗? -
试试
-A...你会得到-10。