Парни, если интервал c=10001; который является двоичным значением. Если я хочу обработать его как умножение его 10, как сделать это?
Если я правильно вас понял, вы хотите сделать следующее: Integer.parseInt ("10001", 2)
, что даст вам 17.
Integer.toString
также принимает систему счисления как Второй аргумент.
Документ: Integer.parseInt (String s, int radix)
"int" не является ни двоичным, ни шестнадцатеричным, ни десятичным, это просто место для хранения числа. Сами переменные не имеют конкретного шестнадцатеричного/десятеричного/двоичного представления, пока вы их не напечатаете.
Когда вы вводите число в код, у него есть основание, но после того, как он использует это основание для обработки того, что вы ввели, основание отбрасывается, и int просто хранит число.
Поэтому ответ на ваш вопрос - c * 10 (если вы имели в виду 10 dec)
Умножение двоичного числа на целое:
Для вашего примера с 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. Я думаю, что было бы лучше преобразовать двоичное значение в целое число перед его использованием.
Вы можете задать его как 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);
}
двоично-десятичное преобразование
Рассматривать
int c = 10001;
как двоичное число действительно странно. Лучше было бы вместо этого объявить его как String
String binaryString = "10001";
и затем в цикле по каждому символу выполнить любой алгоритм преобразования базы, который вы хотите.
Вы можете указать его как 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);
}
двоично-десятичное преобразование