개요
프로그래밍 언어 : C언어
과제 수행 날짜 : 2020.09.18
과제 개요 : 변수 A의 상위 4비트와 변수 B의 하위 4비트를 결합한 것을 A에 저장하고, 원래 변수 A의 하위 4비트와 변수 B의 상위 4비트를 결합한 것을 B에 저장하는 프로그램
코드
#include <stdio.h>
int main()
{
unsigned char A = 139;
unsigned char B = 53;
printf("처리 전 값 : A = %d, B = %d\n", A, B);
unsigned A_l = A & 0x0f; //A의 하위비트 저장
A = A & 0xF0 ^ B & 0x0F;
B = A_l << 4 | B >> 4;
printf("처리 후 값 : A = %d, B = %d\n", A, B);
return 0;
}
결과
1) 처리 전과 처리 후의 값 변화

처리 전의 A는 139, B = 53으로, 이를 비트로 나타내면
A = 1000 1011, B = 0011 0101 이 된다.
그리고 A는 A의 상위비트 + B의 하위비트이고, B는 A의 하위비트 + B의 상위비트이므로
A = 1000 0101 = 133, B = 1011 0011 = 179가 된다.
2) 비트 연산 과정
코드가 진행되는 과정을 두 변수 값의 비트 형태로 표현
- A 만들기

- B 만들기

'프로젝트 & 과제 > 3학년' 카테고리의 다른 글
[C언어] 홀짝 구분 (0) | 2022.01.28 |
---|---|
[C언어] 2차원 배열의 주소 (0) | 2022.01.27 |
[C언어] 출력 프로그램의 변수공간 (0) | 2022.01.25 |
[C언어] 한글 / 영어 / 숫자 / 특수문자 (0) | 2022.01.24 |
[C언어] 변수의 메모리 할당 위치 (0) | 2022.01.23 |