초보 삼촌이 조언을 구하러 다시 왔습니다.
本善之初
本善之初 2019-08-26 14:44:15
0
2
1450

원코드, 역코드, 보수코드 개념은 간단하게 이해했습니다

그런데 "AND, OR, NOT" 비트를 만나면 그 자리에서 거의 폭발할 뻔~

왼쪽 쉬프트를 만나면 그리고 오른쪽 쉬프트, 그냥 해요 머리카락 뭉치 같아요~~

간략하게 요약해주실 분 계신가요?


本善之初
本善之初

모든 응답(2)
jesse

이것들은 단지 전채요리일 뿐이므로 PHP 학습에 대한 흥미가 떨어지므로 먼저 건너뛰고 실제 상황에 따라 고려해 보세요. 그걸 써.

V

논리적 AND, 논리적 OR 및 논리적 부정은 부울에 대한 가치 있는 연산이며 이산 수학의 범주에 속합니다.
비트별 AND, 비트별 OR 및 비트별 NOT은 컴퓨터 비트에 대한 연산이며 컴퓨터 이진 비트 연산 범주에 속합니다.
Logic 및 c의 &와 &&의 차이점은 둘 다 사실입니다.
논리적 OR 진실은 c의 ||
C에서는 false가 아닌 논리가 참입니다! .
비트별 AND, 비트별 OR, 비트별 NOT은 위의 규칙에 따라 각 비트에 대해 논리 연산을 수행합니다. 여기서 1은 참을 나타내고 0은 거짓을 나타냅니다.

비트 AND 연산 0&0=0; 0&1=0; 1&1=1

예: 10&9: 0000 1010 & 0000 1001 = 0000 1000 = 8

음수는 보수 형식으로 비트 AND 연산에 참여합니다

"AND 연산"의 특수 용도:

(1) 명확합니다. 셀을 0으로 지우려면 모든 이진 비트가 0이더라도 비트가 모두 0인 값과 AND하면 결과는 0이 됩니다.

(2) 숫자에서 지정된 비트를 가져옵니다

방법: X의 지정된 위치에서 가져올 비트에 해당하는 숫자를 찾습니다.

예: X=10101110이라고 가정하고,

의 하위 4자리를 취합니다.

비트별 OR 연산자(|)

연산에 참여하는 두 객체는 ​​바이너리 비트를 기준으로 "OR" 연산을 수행합니다.

작업 규칙: 0|0=0; 1|0=1; 1|1=1; 즉, 작업에 참여하는 두 객체 중 하나가 값은 1입니다.

예: 3|5 즉, 0000 0011 | 0000 0101 = 0000 0111 따라서 3|5는 7의 가치가 있습니다.

또한 음수는 보수 형식의 비트 OR 연산에 참여합니다.

"OR 연산"의 특수 기능:

데이터의 특정 위치에 1을 설정하는 데 일반적으로 사용됩니다.

방법: 1로 설정할 X의 비트에 해당하는 숫자를 찾습니다. 숫자의 해당 비트는 1이고 나머지 비트는 0입니다. 이 숫자는 X를 기준으로 하거나 X의 일부 위치를 1로 설정합니다.

예: X=10100000의 하위 4비트를 1로 설정하고 X | 0000 1111 = 1010 1111을 사용하여 가져옵니다.

XOR 연산자(^)

연산에 참여하는 두 데이터는 바이너리 비트를 기준으로 "XOR" 연산을 수행합니다.

작업 규칙: 0^0=0; 1^0=1; 1^1=0; 즉, 두 개의 해당 비트가 "배타적"인 경우 작업에 참여합니다. (값이 다름), 이 비트의 결과는 1이고, 그렇지 않으면 0입니다.

예: 10^-9, 즉 0000 1010 ^ 1111 0111 = 1111 1101(보완 코드) 원래 코드는 1000 0011, 즉 10^-9 = -3

"XOR 연산의 특수 기능입니다. ":

(1 ) 특정 비트를 뒤집어 해당 비트에 해당하는 숫자를 찾습니다.

예: X=10101110, X의 하위 4비트를 뒤집고 X ^ 0000 1111 = 1010 0001을 사용합니다.

(2) 0을 XOR하면 원래 값인 X ^ 0000 0000 = 1010 1110을 유지합니다.

a와 b를 바꾸세요

방법 1 방법 2

1.a=a^b 1.a= a-b

2.b=b^a 2.b= a+b

3. a=a^b 3.a= b-a

왼쪽 시프트 연산자(<<)

는 피연산자의 모든 이진 비트를 특정 비트 수만큼 왼쪽으로 이동합니다(왼쪽 이진 비트는 버려지고 오른쪽 비트는 0으로 채워집니다).

예: a = a << 2 a의 이진수 비트를 왼쪽으로 2비트 이동하고 오른쪽에 0을 추가합니다.

왼쪽으로 1비트 이동한 후 a = a * 2;

If 왼쪽으로 시프트할 때 버려지는 상위 비트에는 1이 포함되지 않으며, 각 왼쪽 시프트는 숫자에 2를 곱하는 것과 같습니다.

6. 오른쪽 이동 연산자(>>)

숫자의 모든 이진수를 특정 비트 수만큼 오른쪽으로 이동합니다. 양수는 왼쪽으로 0으로 채워지고 음수는 1로 채워집니다. 왼쪽, 오른쪽은 버려집니다.

피연산자를 오른쪽으로 1비트씩 이동하는 것은 숫자를 2로 나누는 것과 같습니다.

예: a = a >> 2 a의 이진 비트를 오른쪽으로 2비트 이동합니다.

이동되는 숫자가 양수인지 음수인지에 따라 왼쪽에 0 또는 1을 추가합니다.

>> 연산자는 표현식1의 모든 비트를 표현식2에서 지정한 비트 수만큼 오른쪽으로 이동합니다. 표현식1의 부호 비트는 오른쪽 시프트 후 왼쪽 비워진 비트를 채우는 데 사용됩니다. 오른쪽으로 이동된 비트는 버려집니다.

예를 들어 다음 코드를 평가한 후 temp 값은 -4입니다.

var temp = -14 >> 2

-14(예: 이진수로 11110010) 오른쪽으로 두 자리 이동한 값은 - 4(즉, 이진수로 11111100).

부호 없는 오른쪽 이동 연산자(>>>)

>>> 이 연산자는 표현식1의 각 비트를 표현식2에서 지정한 자릿수만큼 오른쪽으로 이동합니다. 오른쪽으로 시프트한 후 왼쪽의 비어 있는 비트는 0으로 채워집니다. 오른쪽으로 이동된 비트는 버려집니다.



최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿