내 목표는 각 비트에 값을 할당하여 char 변수의 프레임을 만드는 것입니다. 즉, 각 비트에 0과 1을 할당해야합니다. 문자 변수의 비트 조작
는 다음 코드했다 :char packet;
int bit;
packet &= ~(1 << 0);
packet |= (1 << 1);
printf("\n Checking each bit of packet: \n");
for(int x=0;x<2;x++)
{
bit = packet & (1 << x);
printf("\nBit [%d] of packet : %d", x, bit);
}
을하지만 점점 오전 출력은 다음과 같습니다
Bit[0] of packet : 0 Bit[1] of packet : 2
문제가 여기에 무엇입니까?
실제로 무엇을하려고하는지 명확하지 않습니다. 너는 무엇을 기대하고 있니? – yan
이것은 여러분의 코드가하는 것입니다. g = 쓰레기 (초기화되지 않은 메모리 비트)로 둡니다. "g g g g g g g"로 시작하십시오. 첫 번째 비트 연산은 "g g g g g g 0"을 만들고 두 번째 비트 연산은 "g g g g g 0 0"을 만듭니다. 루프는 단순히 [0] = 0x00 (첫 번째 비트는 0)을 출력합니다. 및 [1] = 0x02 (두 번째 비트는 1 임). 그래서 기본적으로 많은 사람들이 정기적으로 말하기 때문에 "설계된대로 작동합니다" – DXM