#1. 특정 비트의 값 얻기

Kal·2021년 7월 17일
0

C언어

목록 보기
1/17

변수의 값을 2진수 형태로 확인하는 예제 p.219 (Do it C언어)

#include<stdio.h>
unsigned char GetBit(unsigned char dest_data, unsigned char bit_num)

/*GeitBit 함수는 dest_data 변수의 bit_num번째 비트 값을 반환하는 함수이다 */

{
unsigned char bit_state = 0;

/*1바이트 변수이기 때문에 비트 이동은 0~7자리까지만 가능하다 */

if(bit_num<8) {
bit_state = dest_data & (0x01<<bit_num);
bit_state = bit_state >> bit_num;

/* dest_data 값과 0x01을 bit_num만큼 Underflow한 값을 &을 통해 연산하면 dest_data 값을 모를지라도 비트의 값을 가지고 있는 지를 0자리수의 0,1 값 판별을 통해 알아낼 수 있다 */

}

return bit_state;
/*bit_num에 지정한 비트 값을 반환한다 */

}

void main()
{
unsigned char lamp_state = 0x75; /* 16진수 0x75는 0111 0101 */
unsighed char bit_state;
int i;

printf("%X->", lamp_state);
/*16진법으로 현재 값을 출력함, 16진수를 표현하는 printf 변수 표현형은 %X */

/* 8개의 비트 표현을 위해서, 8번 반복하는데 최상위 비트부터 표현하기 위해서 7,6,5,4,3--- 순으로 비트 값을 얻는다. */
for(i=0;i<8;i++){
bit_state = GetBit(lamp_state, 7-i);
printf("%d", bit_state);

}

/* 비트 값이 모두 출력되면 줄 바꿈을 함 */

printf("\n");

}

profile
프로그래밍 독학

0개의 댓글