如何在java中使用其他基数?
伙计们,如果int c = 10001; 这是一个二进制值。如果我想处理它就像乘以10怎么做?
如果我理解你正确你想要这样做: Integer.parseInt("10001", 2)
,它将给你17。
Integer.toString
也接受radix作为第二个参数。
Doc: Integer.parseInt(String s,int radix)
“int”既不是二进制,hex或十进制,它只是一个存储数字的地方。 在您打印变量之前,变量本身没有特定的hex/十进制/二进制表示。
当您在代码中键入数字时,它有一个基数,但在使用基数来处理您键入的内容后,基数将被丢弃,而int只存储一个数字。
所以你的问题的答案是c * 10(假设你的意思是10月12日)
您可以将其指定为int c = 0x11
(考虑10001是0001 0001,hex为11)
public static void main(String[] args) throws Exception { int c = 0x11; // 10001 int d = 10; // ten decimal int d = 0x2; // ten binary 0010 - see table below System.out.println(c); System.out.println(c*d); System.out.println(c*e); }
二进制十进制转换
- 0 0000
- 1 0001
- 2 0010
- 3 0011
- 4 0100
- 5 0101
- 6 0110
- 7 0111
- 8 1000
- 9 1001
- 一个1010
- B 1011
- C 1100
- D 1101
- E 1110
- F 1111
治疗
int c = 10001;
作为二进制数字真的很奇怪。 最好将它声明为String
String binaryString = "10001";
然后循环遍历每个字符以执行您想要的任何基本转换算法。
二进制与整数的乘法:
- 如果它是2的幂,那么只需将所有数字左移到左边的指数值
- 如果它不是2的幂,则找到两个小的最大幂,然后是你想要乘以你的c的值。 对其余部分做同样的事情等等。 最后只是总结所有的价值观。
对于c = 10001(基数2)* 10(基数10)的例子,这意味着(10 = 2 ^ 3 + 2 ^ 1)
int c=10001 int result=c*1000+c*10 //left-shift 3 + left-shift 1
但这并不是处理这类任务的好方法……而且它认为将二进制值保存到int中是个坏主意。 我认为在使用它之前将二进制转换为整数会更好。