0
누군가이 두 비트 마스크를 읽는 방법을 설명 할 수 있습니까?다음 예에서 비트 마스크와 비트를 읽는 중
uint32_t = 0x1 << 0;
uint32_t = 0x1 << 1;
기본적으로 코드를 읽을 수없는 사람에게 어떻게 번역 하시겠습니까? 어느 쪽이 다른 쪽보다 작습니까?
누군가이 두 비트 마스크를 읽는 방법을 설명 할 수 있습니까?다음 예에서 비트 마스크와 비트를 읽는 중
uint32_t = 0x1 << 0;
uint32_t = 0x1 << 1;
기본적으로 코드를 읽을 수없는 사람에게 어떻게 번역 하시겠습니까? 어느 쪽이 다른 쪽보다 작습니까?
음, 0x1은 1의 16 진수 값이며 이진수는 ~ 001로 표시됩니다. 0x1에 0 비트 시프트를 적용하면 실제로 아무 것도 이동하지 않았기 때문에 값이 변경되지 않습니다. 당신이 1 시프트 할 때, 당신은 두 번째 열에 1을 가지고 다른 곳에는 0을 가지고 있기 때문에 좋은 0의 숫자가 2 인 ~ 010을 나타냅니다.
그러므로 은 uint32_t j = 0x1 << 1;
보다 작은 값을가집니다.
uint32_t i = 0x1 << 0;
uint32_t j = 0x1 << 1;
NSLog(@"%u",i); // outputs 1
NSLog(@"%u",j); // outputs 2