FrontPage > C/C++ > C言語 > C言語 基本 > 「<< >>」

シフト計算

ビットレベルのシフト処理を行う。

説明

サンプル

#include        <stdio.h>

main(){

        int iLoop = 0;

        for (iLoop=0; iLoop <= 20; iLoop++){
                printf (" ( 0x000001 <<  %02d ) = %x\n", iLoop, (0x000001 << iLoop));
        }

        printf ("\n");

        for (iLoop=0; iLoop <= 20; iLoop++){
                printf (" ( 0x100000 >>  %02d ) = %x\n", iLoop, (0x100000 >> iLoop));
        }
}

結果

( 0x000001 <<   0 ) = 1
( 0x000001 <<   1 ) = 2
( 0x000001 <<   2 ) = 4
( 0x000001 <<   3 ) = 8
( 0x000001 <<   4 ) = 10
( 0x000001 <<   5 ) = 20
( 0x000001 <<   6 ) = 40
( 0x000001 <<   7 ) = 80
( 0x000001 <<   8 ) = 100
( 0x000001 <<   9 ) = 200
( 0x000001 <<  10 ) = 400
( 0x000001 <<  11 ) = 800
( 0x000001 <<  12 ) = 1000
( 0x000001 <<  13 ) = 2000
( 0x000001 <<  14 ) = 4000
( 0x000001 <<  15 ) = 8000
( 0x000001 <<  16 ) = 10000
( 0x000001 <<  17 ) = 20000
( 0x000001 <<  18 ) = 40000
( 0x000001 <<  19 ) = 80000
( 0x000001 <<  20 ) = 100000

( 0x100000 >>   0 ) = 100000
( 0x100000 >>   1 ) = 80000
( 0x100000 >>   2 ) = 40000
( 0x100000 >>   3 ) = 20000
( 0x100000 >>   4 ) = 10000
( 0x100000 >>   5 ) = 8000
( 0x100000 >>   6 ) = 4000
( 0x100000 >>   7 ) = 2000
( 0x100000 >>   8 ) = 1000
( 0x100000 >>   9 ) = 800
( 0x100000 >>  10 ) = 400
( 0x100000 >>  11 ) = 200
( 0x100000 >>  12 ) = 100
( 0x100000 >>  13 ) = 80
( 0x100000 >>  14 ) = 40
( 0x100000 >>  15 ) = 20
( 0x100000 >>  16 ) = 10
( 0x100000 >>  17 ) = 8
( 0x100000 >>  18 ) = 4
( 0x100000 >>  19 ) = 2
( 0x100000 >>  20 ) = 1

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-06-14 (木) 21:15:19