programing

비트 연산자의 전력 모드 2?

randomtip 2022. 7. 21. 22:01
반응형

비트 연산자의 전력 모드 2?

  1. 2' '2' '2' '2' '2' '2' '2' '2' '2')의합니까?1011000111011010
  2. 0의 거듭제곱을 하려면 mod 2를, 4의 거듭제곱을 하려면 2를 몇 번입니까?
  3. 2의 거듭제곱이 모듈로 연산자와 무슨 관계가 있습니까?그것은 특별한 재산을 가지고 있나요?
  4. 누가 예를 들어줄 수 있나요?

강사가 "mod를 2의 거듭제곱하면 하위 비트만 취할 수 있습니다."라고 말합니다.무슨 뜻인지 물어보는게 너무 무서워서 =)

그가 말한 것은number mod 2^n는, 을 한 모든 것과 .n최하위(오른쪽) 비트number.

예를 들어, n == 2일 경우,

number      number mod 4
00000001      00000001
00000010      00000010
00000011      00000011
00000100      00000000
00000101      00000001
00000110      00000010
00000111      00000011
00001000      00000000
00001001      00000001
etc.

다른 말로 하자면number mod 4 is is is is is와 number & 00000011서 (어디서)&bitwise-and)bitwise-and)bitwise-and)bitwise-and)입니다.


해 주세요.「 Base - 10 」 。number mod 10.number mod 100마지막 두 자리 숫자를 알려드립니다.

그가 의미하는 바는 다음과 같습니다.

x modulo y = (x & (y − 1))

y가 2의 거듭제곱일 때.

예제:

0110010110 (406) modulo
0001000000 (64)  =
0000010110 (22)
^^^^<- ignore these bits

이 예에서는 다음과 같이 합니다.

1011000111011010 (45530) modulo
0000000000000001 (2 power 0) =
0000000000000000 (0)
^^^^^^^^^^^^^^^^<- ignore these bits

1011000111011010 (45530) modulo
0000000000010000 (2 power 4) =
0000000000001010 (10)
^^^^^^^^^^^^<- ignore these bits

숫자 모듈로 10을 사용할 때 고려하십시오.이렇게 하면 숫자의 마지막 자리만 얻을 수 있습니다.

  334 % 10 = 4
  12345 % 10 = 5

마찬가지로 100의 숫자를 취하면 마지막 두 자리만 얻게 됩니다.

  334 % 100 = 34
  12345 % 100 = 45

2진법으로 된 마지막 숫자를 보면 2승의 곱을 구할 수 있습니다.그건 조금 현명하게 하는 거랑 똑같아요.

일반적으로 Modulo는 나눗셈 후 값의 나머지를 반환합니다. ★★★★★★★★★★★★★★★★★.x mod 40, 1, 2, 3으로 나누다. 01, 10, 수 은, 2비트(00, 01, 10, 11)를 하는 다른 입니다.x mod 4마지막 두 비트를 제외한 모든 비트를 x 단위로 0으로 설정하는 것입니다.

예제:

      x = 10101010110101110
x mod 4 = 00000000000000010

특정 질문에 대한 답변:

  1. mod는 나머지 연산자입니다.0, 1, ...의 일련의 숫자 x에 적용하면 x mod n은 0, 1, ..., n-1, 0, 1, ..., n-1, ad ininitum이 됩니다.계수 n이 2의 거듭제곱일 경우 x mod n은 0에서n-1, 0으로 되돌아가 n-1 등으로 카운트업됩니다.계수 n이 binary 01xxxxxxxxx와 같은 경우 x mod n은 모든 하위 비트 xxxxxx를 순환합니다.
  2. 바이너리 1011000111010 mod 1은 0입니다(mod 2^0은 마지막 0비트를 생성합니다.mod 1은 모두 0입니다).binary 1011000111010 mod binary 10000 은 1010 입니다(mod 2^4 는 마지막 4 비트를 생성합니다).
  3. 이진수를 2의 거듭제곱으로 나누면 특히 효율적입니다.그것은 단지 이동과 마스킹일 뿐이기 때문입니다.수학적으로는 특별하지 않습니다.
  4. 예제:질문 2의 답을 참조하십시오.

언급URL : https://stackoverflow.com/questions/6670715/mod-of-power-2-on-bitwise-operators

반응형