2016-08-15 3 views
0

16 비트 선형 피드백 시프트 레지스터를 네이티브 시프트 연산자를 사용하여 파이썬에서 작성한다고 가정 해 봅시다.파이썬에서 LFSR을위한 시프트 연산자 사용

  1. 연산자 자체에 비트를 지정하여 새 MSB 위치로 이동시키는 기능이 있습니까?
  2. 레지스터에서 떨어지는 LSB를 잡기 위해 연산자에 캐리 플래그가 있습니까?
  3. 레지스터를 16 비트 크기로 설정해야합니까? 변수가 명확하게 입력되지 않은 Python에서는이를 수행하는 방법을 모릅니다.
  4. 피드백을 위해 멀티 비트 XOR 함수를 계산하는 가장 현명한 방법은 무엇입니까? 실제 비트 추출 또는 조회 테이블?

감사합니다, 거트

+0

정말 이것을 파이썬으로하고 싶습니까? – Akilesh

답변

1

파이썬은 레지스터를 가지고 있지 않으며, 당신은 아무것도의 유형을 선언 할 수 없습니다.

시프트 연산자는 무제한 정수에서 작동합니다. 왼쪽으로 이동하면 숫자가 무기한으로 (또는 메모리가 부족할 때까지) 계속 커집니다. 오른쪽으로 이동하면 예상대로 최하위 비트가 삭제됩니다. "carry flag"는 없습니다. 어셈블리 언어에서 볼 수있는 것입니다. 파이썬은 어셈블리가 아닙니다. 정수는 무제한의 정밀도를 가지므로 논리적 및 산술적 인 시프트는 같은 의미입니다 (기호 비트가 무한 반복되는 경우).

고정 폭 작업을 원하면 언제든지 무제한 정밀 작업의 결과를 마스크해야합니다.

"가장 똑똑한"방법은 스택 오버플로에 대한 적절한 질문이 아닙니다.

관련 문제