C++에서 숫자의 부호 비트에 액세스 할 수 있기를 원합니다.C++에서 숫자의 부호 비트에 어떻게 액세스합니까?
int sign bit = number >> 31;
음수 나에게 양수에 대한 0
및 -1
을주는 작업을 나타납니다 : 내 현재 코드는 다음과 같이 보인다. 그러나, 나는 내가 음수 -1
을받을 표시되지 않습니다 : (12)가 다음
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1100
인 경우 -12
1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 0011
하고 이동 그것은 31 비트
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001
을 만들 것 -1이 아닌 1입니다. 그래서 내가 그것을 옮길 때 왜 -1을 얻습니까?
가능한 중복 (HTTP : // 유래. com/questions/141525/절대 - 초보자 - 가이드 - 비트 - 시프트) – msw
int sign_bit = (int) (number> 0); – aviraldg
[2의 보수] (http://en.wikipedia.org/wiki/Two%27s_complement#Complement_of_a_positive_number) (대부분의 최신 시스템에서 사용함)의 경우 -12가 잘못되었습니다. 그것은 0100. –