- 1
def neg(x): return int(bin(x)[2:].rjust(8, '0').replace('1','x').replace('0','1').replace('x','0'), 2)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
def neg(x): return int(bin(x)[2:].rjust(8, '0').replace('1','x').replace('0','1').replace('x','0'), 2)
Операция "NEG"
j123123 Позавчера # 0
Ну и хуйня! Для правильного перевода надь использовать библиотеку с длинной арифметикой, а не это вот. Кто сказал, что x должен содержать не более чем 8 бит?
guest6 Позавчера # 0
j123123 13 часов назад # 0
Хотя тут будет UB в одном особом числе, так что можно исправить в
guest6 12 часов назад # 0
числе Тараса
guest6 Позавчера # 0
guest6 Позавчера # 0
guest6 11 часов назад # 0
Для дополнительного кода (two’s complement):
А в прямом коде (который используется в плавпитухе) и инвертировать ничего не надо, только знак сменить.
NEG совпадает с NOT только для обратного кода (one’s complement), который применялся в говне мамонта вроде UNIVAC.
guest6 11 часов назад # 0
guest6 6 часов назад # 0
HoBorogHuu_nemyx только что # 0
Всеотцу говно не унять.