Здравствуйте, dikun, Вы писали:
D>...для однобайтовых чисел:
D>x[k](2) ::= k-я цифра числа x в двоичной системе счисления D>x[n]...x[0]( 2) ::= x, записанное двоичными цифрами. D>x[m]...x[0](10) ::= x, записанное десятичными цифрами. D>sum[i=0,7](a[i](2)) ::= сумма по i от 0 до 7 двоичных a[i]-ых D>2^i ::= 2 в степени i D>a shl i ::= побитный сдвиг a влево на i бит без усечения битов, вышедших за разрядную сетку D>a shr i ::= аналогично предыдущему (только вправо и с усечением) D>a div b ::= неполное частное при делении a на b
D>not a = 1...1(2) — a = 255(10) — a D>a shl i = a * (2^i) D>a shr i = a div (2^i) D>a[i](2) = ( ( a shl (7-i) ) — ( ( a shr (i+1) ) shl 8 ) ) shr 7 D>a and b = sum[i=0,7]( a[i](2) * b[i](2) * (2^i) ) D>a or b = not( (not a) and (not b) ) D>not(not a) = a D>a => b = (not a) or b = not( a and (not b) ) D>a <=> b = (a => b) and (b => a) D>a xor b = not(a <=> b) = not( (a=>b) and (b=>a) ) = not( not( a and (not b) ) and not( b and (not a) ) )
D>Всё. D>Если есть желание — преобразовывай дальше.
В том то и дело что побитово я могу это все разложить и преобразовать через другие побитовые операции, но совместить побитовые операции с арифметическими действиями у меня не получается, т.е. можно ли преобразовать такую формулу (a or (not(b-c)), где '-' арифметическое действие, через арифметические действия а не через побитовые. Или как арифметический '-' выразить побитовыми функциями.