이진 연산자 핵 및 트릭
4062 단어 gogolang101programming
&
, |
, ^
, <<
및 >>
연산자가 있다는 것을 알고 있지만 우리 모두가 각 연산자의 비밀을 아는 것은 아닙니다. go 언어를 사용하는 연산자 뒤에 있는 속임수를 살펴보겠습니다.2로 곱하거나 나누기
* 2
를 사용하여 2를 곱하거나 / 2
를 사용하여 나누는 것이 일반적인 방법이지만 이항 연산자로 어떻게 동일한 결과를 얻을 수 있습니까?2로 나누다
1만큼 오른쪽으로 이동
someNumber >> 1
2를 곱하다
왼쪽으로 1 쉬프트
someNumber << 1
// multiply by 2
fmt.Println(4 << 1)
// Output: 8
// divide by 2
fmt.Println(4 >> 1)
// Output: 2
대소문자 변경
// to upper case char
fmt.Println((string)('c' & '_'))
// Output: C
// to lower case char
fmt.Println(string('A' | ' '))
// Output: a
대소문자 반전
문자 반전은 공백이 있는
xor
로 달성할 수 있습니다. fmt.Println(string('A' ^ ' '), string('b' ^ ' '))
// Output: a B
문자 위치 가져오기
and with 31
를 사용하여 알파벳(1-26)에서 문자의 위치를 가져옵니다. fmt.Println('z' & 31)
// Output: 26
홀수 또는 짝수 확인
and with 1
를 사용하여 숫자가 홀수/짝수인지 간단히 확인하고, 숫자가 홀수이면 true를 반환합니다. // odd number return true
fmt.Println(7 & 1 > 0)
// Output: true
// even number return false
fmt.Println(8 & 1 > 0)
// Output: false
https://play.golang.org/p/-wsIlDgBTmF에서 직접 시도하십시오.
Reference
이 문제에 관하여(이진 연산자 핵 및 트릭), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/lumochift/binary-operator-hack-and-tricks-2nj5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)