시프트 연산에 대해...
갅지돋는슬아
예를 들어서..
int형 숫자는 1 하면 *2
2 하면 *4...
1 하면 /2...
2.....3.....4 하면 /4............../8............../16 암튼 계속 이런식이 되겠지여...
unsigned int형 데이타는... 양의정수일때는 똑같은거 같은데 음의 정수일때의 값은 엄청난 숫자로 시작해서 점점 줄어들고
32번째에서 원래 숫자로 돌아오더군요...
unsigned int형 데이타 음의 정수에 시프트 사용하는것에 대해 설명좀 부탁드립니다.
-
헛매질
아 그렇군요 지적 감사합니다. 전 그냥 도는지 알았네여;
-
쌍둥이자리
수다님//shift연산과 rotate연산은 다릅니다.
일부 cpu에서는 한 워드 크기 이상을 시프트할 때 워드 크기로 나머지를 취한 것 만큼만 시프트하도록 되어 있기 때문에, (워드의 크기가 32비트인 경우) 32 이상 시프트하면 원래의 결과를 보이는 겁니다. -
일본드립
-20은 signed int형 변수에서 2진수로 11111111 11111111 11111111 11101100 인데요.
이는 unsigned int형 변수에서는 4294967276과 같습니다. -
하예라
네 그렇긴 한데...
unsigned int a = -20 이렇게 해놓고
a2 해논 답을 내놓라는걸 본거 같아서 이해하기가 힘들더라구요... 2에 몇승에 뭐던데....
이해가 안됨..ㅡ.ㅜ;; -
꽃초롱
우선 컴퓨터에서 음수를 표현하는 방법에 대해서 알아야 할 것 같네요.
\2의 보수\를 검색해보세요.