abler98
@abler98
Software Engineer

Какой операцией можно выполнить это действие?

Есть два значения в двоичной системе:
------------------------------101111111001001010111010011 (int)
100010000000000000000000100000101111111001001010111010011 (long)

Какой операцией можно получить второе значение из первого?
P.S. Первое значение можно получить преобразованием long -> int

У меня получилось сделать так:
String value = "101111111001001010111010011";
String result = Long.toString(0x1100001L << 32 | Integer.parseInt(value, 2), 2);

Это работает, но правильно ли это?
  • Вопрос задан
  • 221 просмотр
Решения вопроса 1
@Free_ze
Пишу комментарии в комментарии, а не в ответы
В первом значении информации заведомо меньше, чем во втором => никак.

UPD:
ideone.com/dNCxZU
long low = 0b101111111001001010111010011L;
long high = 0b100010000000000000000000100000L;
int moveSize = Long.toBinaryString(low).length();

long result = low + (high << moveSize);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы