(123/123) движение верхнего делителя с разными результатами - PullRequest
0 голосов
/ 30 апреля 2020

123/123 321/123 213/123

Я хотел бы сделать это автоматически на python

Вот апплет, где вы можете выполнять некоторые битовые операции, включая сдвиг .

У вас есть набор битов, и вы перемещаете некоторые из них за их пределы:

1111 1110 << 2 1111 1000, справа он заполнен нулями sh. :) </p>

0001 1111 >> 3 0000 0011 заполнено слева. Особый случай - ведущий 1. Он часто указывает отрицательное значение - в зависимости от языка и типа данных. Так часто требуется, что если вы сдвигаете вправо, первый бит остается неизменным.

1100 1100 >> 1 1110 0110 и сохраняется в течение нескольких смен:

1100 1100> > 2 1111 0011 Если вы не хотите, чтобы первый бит был сохранен, вы используете (в Java, Scala, C ++, C afaik и, возможно, больше) оператор тройного знака:

1100 1100 >>> 1 0110 0110 Нет эквивалента в другом направлении, потому что это не имеет смысла - может быть, в вашем особом контексте, но не в целом.

Математически, сдвиг влево - это a * = 2, 2 сдвига влево, a * = 4 и так далее. Сдвиг вправо - это / = 2 и т. Д.

...