ビットシフト演算を理解する

左シフトは2倍
右シフトは2分の1倍(切り捨て)

#include <stdio.h>

int main(int argc, const char * argv[])
{
    int origin = 0b0111; // 4 + 2 + 1 = 7
    int shifted,shifted2,shifted3,shifted4;
    shifted = origin << 1; // 0b0111 << 1 => 1110 = 8 + 4 + 2 = 14 (7 * 2)
    shifted2 = origin << 2; // 0b0111 << 2 => 11100 = 16 + 8 + 4 = 28(7 * 2)
    shifted3= origin >> 1; // 0b0111 >> 1 => 0011 = 2 + 1= 3(7/2 = 3.5 = 3)
    shifted4 = origin >> 2; // 0b0111 >> 2 => 0001 = 1(3.5/2 = 1.125 = 1)
    
    printf("%d",origin);//
    printf("\n");
    printf("%d",shifted);//
    printf("\n");
    printf("%d",shifted2);//
    printf("\n");
    printf("%d",shifted3);//
    printf("\n");
    printf("%d",shifted4);//

    return 0;
}