비트단위연산문제 를 10진수8또는 16진수와 and not을 알면 시험문제 한문제를 맞출수 있는데요
네이버에 not 연산을 검색해보니
#include <stdio.h>
int main(void)
{
int num1 = 0;
int num2 = ~num1;
printf("NOT 연산의 결과: %d \n", num2);
return 0;
}
이게나오더라구요 그래서 해봣는데요
0넣으면 -1이구요 1넣으면 -2 이렇게 돼던데요
2의보수를 써서 그렇다는데요 2의보수가 뭔지 알구있구요 그럼 걍 not 연산이란 -붙히고 1빼주면 돼는건가요 ???
#include<stdio.h>
int main(void)
{
int num1=15; //00000000 00000000 00000000 00001111
int num2=20; //00000000 00000000 00000000 00010100
int num3=num1 &num2; // num1과 num2의 비트단위 &연산
printf("AND 연산의 결과: %d \n",num3);
return 0;
}
실행결과 AND연산의 결과 :4
그리고 여기서 num1=0x** num2=0x**
이라하면 num1,2의 숫자를 10진수로 바꾸고 00000000 00000000 00000000 00001111요런형식으로 해서 둘다1인거를 읽어주면 돼는거맞죠?