如何在java中使用其他基数?

时间:2010-05-18 18:32:22

标签: java int

如果int c = 10001,则为人;这是一个二进制值。如果我想处理它就像乘以10怎么做?

5 个答案:

答案 0 :(得分:15)

如果我理解你,你想要这样做:Integer.parseInt("10001", 2),它会给你17 Integer.toString也接受基数作为第二个参数。

Doc:Integer.parseInt(String s, int radix)

答案 1 :(得分:7)

“int”既不是二进制,十六进制或十进制,它只是存储数字的地方。在您打印变量之前,变量本身没有特定的十六进制/十进制/二进制表示。

当您在代码中键入数字时,它有一个基数,但在使用基数来处理您键入的内容后,基数将被丢弃,而int只会存储一个数字。

所以你问题的答案是c * 10(假设你的意思是10月12日)

答案 2 :(得分:1)

您可以将其指定为int c = 0x11(考虑10001是0001 0001,十六进制为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
  • A 1010
  • B 1011
  • C 1100
  • D 1101
  • E 1110
  • F 1111

答案 3 :(得分:0)

治疗

int c = 10001;

作为二进制数字真的很奇怪。最好将其声明为String

String binaryString = "10001";

然后循环遍历每个字符以执行您想要的任何基本转换算法。

答案 4 :(得分:0)

二进制与整数的乘法运算:

  • 如果它是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中是个坏主意。我认为在使用之前将二进制转换为整数会更好。