Read Article

Perlで計算をしよう

広告

この章ではプログラムで計算する方法について説明します。
Perlでの数値は整数や小数点など普段使用している数値と同じものです。
その数値でプログラムの中で計算を行うことができます。
Perlでの数値は大きく分けると整数と実数に分けることができます。実数は浮動小数点数と呼ばれています。
浮動小数点数とは「9.1」など小数点で表される数値です。
整数は10進数だけではなく2進数、8進数、16進数があります。
10進数は、普段、我々が使用している100や10などの数字です。
8進数の場合は先頭に1を付けて記述し、16進数の場合は先頭に1を付けて記述し、2進数の場合は先頭に1を付けて記述します。

では例を見てみましょう。1 2進数で100を表すと
「0b1100100」
8進数で100を表すと
「0144」
16進数で100を表すと
「0x64」
になりますが、print文で出力します
とすべて10進数になって出力されます
つまり、100が出力されます。
ではPerlプログラムで計算を行ってみましょう。
Perlプログラムでの計算方法は普通の算数と同じ計算方法です。
「+」は足し算、「-」は引き算、
「/」は割り算、「*」は掛け算、
「%」は割り算の余りを求めます。1
では例をみてみましょう。
1111 ここで優先順位について説明します。
1の場合には掛け算を計算してから、足し算を計算しますが、これは普通の算数の法則と同じです。
それは掛け算の方が足し算より優先順位が高いという法則です。
優先順位を変えるには1と、先に計算を行いたい箇所に括弧を入れます。
これと同じようにPerlプログラムの中にある演算子同士でも優先順位が存在します。1 優先順位が同じの場合には左側から評価、実行されます。
ですので、以下のように計算式の括弧を外しますと初めに左側が結合してしまうので、計算することが出来なくなってしまいます。1 括弧を付けることでその個所の優先順位が高くなるので、そこから結合、実行されていきます。
では以下の掛け算や割り算の場合にはどうかと言いますと計算式に括弧を付けなくても掛け算や割り算の方が文字列連結演算子より優先順位が高いので、計算式に括弧を付けた時と同じ結果になります。1では次の箇所の説明をします。
例のプログラムの最後にある$aと$bの値の1はダブルクォートで囲ってあるので、一見数字に見えますが文字列です。1 ではなぜ、文字列同士なのに足し算が出来るのか疑問に思いませんか?
普通、計算が出来るのは数字だけです。
Perlは足し算などの計算関係の演算子の両辺には数字が来ることを期待しているので、数字らしき文字列を見付けた場合には数字に自動変換してくれるので、結果は1になります。
では以下の例のように足し算などの計算関係の演算子の両辺に数字とは関係ないものがあったらどうなるでしょうか?1 結果は0が表示されます。
計算できないようなものは0で計算されます。

URL :
TRACKBACK URL :
Return Top