Java中的十六进制整数到十进制整数
我需要将十六进制整数解析为十进制整数 例如,十六进制:02 01(十进制模式下为513)应表示201。 在代码中,它可以传递:Java中的十六进制整数到十进制整数,java,decimal,hex,Java,Decimal,Hex,我需要将十六进制整数解析为十进制整数 例如,十六进制:02 01(十进制模式下为513)应表示201。 在代码中,它可以传递: Assert.assertEquals(201, parse(0x201)); 如何实现parse()方法?谢谢 您可以使用以下两个参数版本: 您可以使用两个参数版本的: 我认为您只需要将以16为基数的数字转换为以10为基数的数字,如下所示: int parse(int n) { if (n == 0) return 0; int digit = n &
Assert.assertEquals(201, parse(0x201));
如何实现parse()方法?谢谢 您可以使用以下两个参数版本:
您可以使用两个参数版本的:
我认为您只需要将以16为基数的数字转换为以10为基数的数字,如下所示:
int parse(int n) {
if (n == 0) return 0;
int digit = n & 0xf;
assert digit >= 0 && digit <= 9;
return parse(n >> 4) * 10 + digit;
}
int解析(int n){
如果(n==0)返回0;
整数位数=n&0xf;
断言数字>=0&&digit>4)*10+位;
}
可能对负数不起作用
你为什么要这么做?这似乎是一件非常愚蠢的事情。我认为您只需要将以16为基数的数字转换为以10为基数的数字,如下所示:
int parse(int n) {
if (n == 0) return 0;
int digit = n & 0xf;
assert digit >= 0 && digit <= 9;
return parse(n >> 4) * 10 + digit;
}
int解析(int n){
如果(n==0)返回0;
整数位数=n&0xf;
断言数字>=0&&digit>4)*10+位;
}
可能对负数不起作用
你为什么要这么做?这似乎是一件非常愚蠢的事情。使用
Integer.toHexString()
System.out.println(Integer.toHexString(0x201))
输出:201使用
Integer.toHexString()
System.out.println(Integer.toHexString(0x201))
输出:201我发现
字符串。格式(“%x”,t)
适用于该函数。无论如何,谢谢马克·阿尼尔万和基思 我发现String.format(“%x”,t)
适用于该函数。无论如何,谢谢马克·阿尼尔万和基思 我的意思是解析(0x201)应该返回201@卢声远 陆胜源:你想把十六进制数当作十进制数来对待吗?如果参数是0x2f1
,你会怎么做?我认为他说的更多的是关于事物的表示方面@卢声远 陆胜源:您可能应该考虑在其中的某个地方使用字符串表示。我的意思是parse(0x201)应该返回201@卢声远 陆胜源:你想把十六进制数当作十进制数来对待吗?如果参数是0x2f1
,你会怎么做?我认为他说的更多的是关于事物的表示方面@卢声远 陆胜源:你可能应该考虑在那里的某个地方使用字符串表示法。