비트 연산 기초

 

100 == 0x64?

컴퓨터 언어에서 16진수를 표시하기 위해 숫자 앞에 0x 를 붙입니다. 10진수 100은 16 진수로 64이며 0x64로 표현됩니다.

 

그 이외,

100의 2진수: 0b1100100

100의 10진수: 100

100의 8진수: 0o144

100의 16진수: 0x64

 

Bin : 2진수 ( binary )

Dec : 10진수 ( decimal )

Oct : 8진수 ( octal )

Hex : 16진수 ( hexadecimal )

 

 

비트 연산자 종류

비트 연산의 종류로는 다음과 같이 있습니다.

  • OR(|) : 둘 중 하나라도 1 이면 1

  • AND(&) : 둘다 1이면 1

  • NOT(~)

  • Exclusive OR(^) : 다르면 1, 같으면 0

  • Shift(>>, <<) : 비트를 지정한 수만큼 좌우로 이동시킨다)

    ex. int num = 15 >> 2 << 1

    1111(15) -> 0011(3) -> 0110(6)

    오른쪽 쉬프트가 일어났을때 비트 자리를 벗어나면 해당 비트는 짤리게 된다.

 

참고로, 0x001 0x0001 0x000000001 ... 등 이 모든 16진수 수는 10진수 1과 같다.

 

예제


문제

입력해준 number가 홀수이면 1부터 number까지의 홀수를 모두 더하고,

짝수이면 1부터 number까지의 짝수를 모두 더해라.

 

해답
for n in range(number+1):
    if number & 0x0001 ^ n & 0x0001 == 0:
        s += n

 

 

'규린이 IT 개발' 카테고리의 다른 글

[Mysql] 컬럼 추가, 수정, 삭제  (0) 2021.11.03
[javascript] 페이지 새로고침  (0) 2021.11.03
[java] JMX, MBean 기초  (0) 2019.06.12
[Python] 파이썬 기초  (0) 2019.06.12
[이클립스] build path  (0) 2019.06.11

+ Recent posts