i, j는 8비트 이고 i는 십진수로 255가 입력돼있으면
컴퓨터로 저장하는건
1111 1111이자나요
j = (i << 3) >> 2
라는 코딩을하게되면
1111 1000 이되고 그담엔
0011 1110 이되는거 맞죠?
쉬프트연산자로 밀린 숫자들이 살아돌아오거나 하지않죠? 다죽어버리죠?
그니까
1111 1110이 최종값이 될리 없져??
i, j는 8비트 이고 i는 십진수로 255가 입력돼있으면
컴퓨터로 저장하는건
1111 1111이자나요
j = (i << 3) >> 2
라는 코딩을하게되면
1111 1000 이되고 그담엔
0011 1110 이되는거 맞죠?
쉬프트연산자로 밀린 숫자들이 살아돌아오거나 하지않죠? 다죽어버리죠?
그니까
1111 1110이 최종값이 될리 없져??
ㅇ
부호비트가 1이면 쉬프트 연산할때 1이 들어오기도함
>>
저경우는 상관없지? 근데 8비트에서 1111 1111이란 숫자가 들어있는데 부호비트가 들어갈틈이있어??
msb = sb
unsigned로 선언된 변수는 부호비트 상관안함
그러면 unsigned로 선언하지 않고 8비트 변수에 10진수 255값을 넣었다고하면 어떻게되는거야
컴퓨터가 저장하는값은 1111 1111일텐데 msb가 부호인지 수치를 나타내는 1인지 모르자나
내가 진짜 몰라서 그랭 ㅠ 그러면 이변수를 A로 지정하고 A >> 1 하면 컴퓨터는 1111 1111으로 저장된다는 소리여???
A >> 2 하면 1011 1111이되는거고 그런개념이야?
unsigned로 선언하면 컴파일러는 가장 왼쪽비트를 부호비트로 생각하지않기때문에 >>를 했을때는 0이 들어옴
만약 signed였다면 가장 왼쪽비트를 부호비트로 생각하기 때문에 >>를 했을때 가장왼쪽비트가 1이었다면 1이 들어와야함 그래야 부호가 유지되기때문임