/var/log/masayoshi/masayoshi.life.log

とりあえず、書きたいこと書くだけ。

シフト演算子



今回は…タイトルの通りシフト演算子をやるぞぉ、とりあえずソースコードだぁー



#!/usr/bin/perl
use strict ;
my($int_a,$int_b,$int_c) ;
$int_a = 89 ;
$int_b = $int_a << 1 ;
$int_c = $int_a >> 1 ;
print "Content-type:text/html; charset=EUC-JP\n\n" ;
print "元の値→".$int_a."<br>" ;
print "左に1シフト→".$int_b."<br>" ;
print "右に1シフト→".$int_c ;

結果は次の通り


元の値→89


左に1シフト→178


右に1シフト→44




見てほしいのは元の値とシフトした後の値だ、まず左に1シフトした場合だ。


この場合元の値の2倍の値になる。


逆だとどうだろうか?


逆は右にシフトした場合だ、逆に半分の値になっている。


小数点以下は切り捨てられていることも覚えとけば損はないはずだ。




ビット演算だと表も必要だけど…後で追加しときます