언어 자료구조 알고리즘/디딤돌 C언어

[정답] 디딤돌 C언어 34. 쉬프트 연산자

언제나휴일 2016. 4. 30. 12:46
반응형

[정답] 34. 쉬프트 연산자


쉬프트 연산자


기본 연습
1.
다음 프로그램의 출력 결과를 예측하시오.
#include <stdio.h>
int main()
{
   
unsigned u = 5;
    int i = -5;
    printf(
"%d \n",u<<3);
    printf(
"%d \n",i<<3);
    return 0;
}
 
:
40
-40
<<
연산을 하면 2 곱한 효과를 갖습니다.
따라서 3자리 왼쪽으로 이동하였으므로 2 3승인 8 곱한 효과를 갖습니다.
 
2.
다음 프로그램의 출력 결과를 예측하고 이유를 설명하시오.
참고:
unsigned int
형식의 0x80000000 2147483648
int
형식의 0x80000000 -2147483648
#include <stdio.h>
int main()
{
   
unsigned u1 = 100;
   
unsigned u2 = 0x80000000;
    int i1 = 100;
    int i2 = 0x80000000;
    printf(
"%d \n",u1>>3);
    printf(
"%d \n",i1>>3);
 
    printf("%d %#X\n",u2>>3, u2>>3);
    printf(
"%d %#X\n",i2>>3, i2>>3 );
 
    return 0;
}
:
12
12
268435456 0x10000000
-268435456 0xF0000000
>>
연산을 하면 2 나눈 효과를 갖습니다.
따라서 3자리 오른쪽으로 이동하였으므로 2 3승인 8 나눈 효과를 갖습니다.


본문: 34. 쉬프트 연산자


반응형