1. 쉬프트연산

  2. 진법 정리

  3. 0x000000ff과 교집합


쉬프트연산

한 변수에 두개의 값을 대입하기

쉬프트연산 후 합집합

 

상황 : x,y 좌표를 보내야하는데 Integer를 short로 비트를 줄여서 보내야함

즉, 16비트안에 두 좌표를 넣어야하는 상황

 

16비트중 앞 8비트에는 7을, 뒤8비트에는 5를 나타내고자한다면

  1. pos = 7<<8 : 7를 왼쪽으로 8비트 이동시키고(쉬프트연산) pos에 대입.
  2. pos | 5 : 합집합

5를 바로 대입해버리면 7이 없어진다.

합집합은 서로 영역을 건들이지않으면서 그대로 나온다.

쉬프트 연산 ( 한 변수에 두개의 값 대입하기)
7 5 결과값

 

 


 

진수

컴퓨터는 2진수를 사용한다. : 0, 1 (1,0을 비트라고부른다)

16진수는 2진수보다 가독성이 좋다(ex 11111111 -> ff)

 

2진수 0 ,1
2가지 데이터표현
1비트 0b  
4진수 00, 01, 10, 11
4가지 데이터표현
2비트    
8진수 000 ~ 111
8가지 데이터표현
3비트   0
16진수 0000 ~ 1111
16가지 데이터표현
4비트 0x 0~9ABCDEF

1 byte = 8 bits (바이트는 컴퓨터가 저장하는 최소단위)

10진수 : 23

2 진수 : 0b10(1bit*2=2bit)

8진수 : 023 (3bit*2=6bit)

16진수 : 0x00(4bit*2=8bit)

 

16진수, 각 4비트를 의미,

0xff = 0b1111 1111

0x0f = 0b0000 1111

0x0f7 = 0b0000 1111 0111

0b000000 : 6bit (1bit*6)

0x000000 : 24bit (4bit*6)

 

 


 

0x000000ff과 교집합

0x000000ff와 비트연산자&(교집합)를 이용해 원하는 값을 도출하기

0x000000ff : 0000 0000 0000 0000 1111 1111 (0하나당 4비트를 의미)

[ ? ][ ? ][ ? ][ b]->[  ][  ][  ][ b]로 채우고싶다면

 

0x000000ff와 교집합한 결과

0으로쓰인 블럭은 교집합을 하면 0만 나온다.

1과 교집합하면 그대로 나온다.

남기고싶은 영역을 1로 활성화 시키고 나머지를 0으로하면 정리된다.

 

 

+ Recent posts