История изменений
Исправление PPP328, (текущая версия) :
В такой вымышленной ситуации конечно странно, что есть float но нет ints, которые являются основой для вычисления floats-типов. Ну ок, даже если нет битовых операций, то их можно заменить:
(ниже для ints, для конкретно вашей реализации floats обратитесь к стандарту на лично ваш флоат (например IEE 754) чтобы увидеть как надо перераспределить биты.
>> N
это деление на 2^N<< N
это умножение на 2^N- a & b = (a + b - (a * b)) / 2
- a | b = (a + b + (a * b)) / 2
- Инверсия строится в зависимости от размеров ваших флоатов, man IEE 754, чтобы посмотреть какие точно биты вам надо перевернуть
Строите примитивы типа NOT, AND, OR, потом XOR, NAND, а на основе последних двух можно вообще вывести абсолютно всю булеву логику.
Исходная версия PPP328, :
В такой вымышленной ситуации конечно странно, что есть float но нет ints, которые являются основой для вычисления floats-типов. Ну ок, даже если нет битовых операций, то их можно заменить:
>> N
это деление на 2^N<< N
это умножение на 2^N- a & b = (a + b - (a * b)) / 2
- a | b = (a + b + (a * b)) / 2
- Инверсия строится в зависимости от размеров ваших флоатов, man IEE 754, чтобы посмотреть какие точно биты вам надо перевернуть
Строите примитивы типа NOT, AND, OR, потом XOR, NAND, а на основе последних двух можно вообще вывести абсолютно всю булеву логику.