나는 이진 표현의 내 번호 마지막 4 개 개의 숫자를 추출하는 문제가가의 마지막 4 자리 추출 : 1111 1001
을 내가 가지고 처음 4
그러나 내가 가지고있는 문제가 마지막 네^하는 int의 이진 표현
# include <stdio.h>
# include <stdlib.h>
# define BYTETOBINARYPATTERN "%d%d%d%d%d%d%d%d\n"
# define BYTETOBINARY(byte) \
(byte & 0x80 ? 1 : 0), \
(byte & 0x40 ? 1 : 0), \
(byte & 0x20 ? 1 : 0), \
(byte & 0x10 ? 1 : 0), \
(byte & 0x08 ? 1 : 0), \
(byte & 0x04 ? 1 : 0), \
(byte & 0x02 ? 1 : 0), \
(byte & 0x01 ? 1 : 0)
int main()
{
int num = 505;
PRINTBIN (num);
// int result = num & bitwise;
//PRINTBIN(result);
// first num;
int i;
int bit=0x01;
int bitwise;
for (i =0;i<4;i++)
{
int bit1=bit<<i;
bitwise = bit1|bit;
}
printf("1:%d\n", bitwise);
PRINTBIN(bitwise);
//second num;
int bitwise1;
int b0 = 0;
int bit2;
for(i=0;i<4;i++)
{
bit2 = bit<<(4+i);
bitwise1 = bit2|b0;
PRINTBIN(bit2);
}
printf("2:%d\n",bitwise1);
PRINTBIN(bitwise1);
return 0;
}
우우, 나는 두 번째 네 가지로 생각하면, 더 나은 용어는 아마도 가장 중요하고 중요하지 않다. 가장 중요한 것은 맨 왼쪽에 쓰여졌을 때, 가장 큰 숫자를 나타내는 것이므로 '가장 중요하다'라고합니다. 어쨌든, 내가 할 수있는 방법은 숫자를 네 번 오른쪽으로 옮기는 것입니다 :'num >> = 4; '그런 다음 첫 번째 작업과 동일한 방식으로 프로세스를 반복하십시오. 그것을 뒤집어서 새로운 문제를 기존의 해결 된 문제로 바꾸어서 똑같은 일을 다시 할 수 있습니다. –
이것은 아주 좋습니다. 고맙습니다. bitwise 조작을보다 쉽게 할 수있는 새로운 기술을 배웠다. – SunnyTrinh
'% b' 변환 지정자가 없다. 적어도 적어도 C 스펙이나 POSIX와 관련이있다. – dreamlax