Противоположность операции Битового "ИЛИ"

Java предоставляет способ сделать это непосредственно. Если Вы не хотите тире, их легко разделить. Просто используйте uuid.replace("-", "")

import java.util.UUID;

public class randomStringGenerator {
    public static void main(String[] args) {
        System.out.println(generateString());
    }

    public static String generateString() {
        String uuid = UUID.randomUUID().toString();
        return "uuid = " + uuid;
    }
}

Вывод:

uuid = 2d7428a6-b58c-4008-8575-f05549f16316
5
задан Jon Seigel 12 April 2010 в 13:27
поделиться

6 ответов

Это невозможно.

Простой случай, демонстрирующий мою точку зрения (предполагая, что a, b и c все 1-битные):

Если 'b' равно 1, ' c 'всегда будет 1, вы не можете определить значение' a '.

22
ответ дан 18 December 2019 в 05:33
поделиться

Вы не можете надежно вернуться назад. Например, a = 0010 и b = 0011. a OR b = 0011. Тот же результат верен, если a было другим (например, 0001 или 0011).

4
ответ дан 18 December 2019 в 05:33
поделиться

Это невозможно. Невозможно определить, что будет "а"

1
ответ дан 18 December 2019 в 05:33
поделиться

Это невозможно, операция или необратима. Существует много разных значений a, которые дают одно и то же значение для c.

Вы можете получить одно возможное значение a, выполнив операцию and с дополнением b.

a = c & ~b
2
ответ дан 18 December 2019 в 05:33
поделиться

Поскольку OR 1 всегда 1, а OR 0 всегда a, вы можете найти значение a, только если b равно 0.

Изменить: AND и OR являются операциями с потерями (не могут всегда быть обратным). В то время как XOR и NOT являются обратимыми / без потерь.

3
ответ дан 18 December 2019 в 05:33
поделиться

с математической точки зрения просто невозможно вывести A из C и B. если для n-го бита у вас есть значение 1 в C, а в B вы не можете знать, равен ли n-й бит в A 0 или 1

1
ответ дан 18 December 2019 в 05:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: