2章.定数

2.1.文字型

N88BASICでは,255バイト以内の文字をつなぎ,その前後をダブルクォーテーション(") で囲んだものです。(")は定数中に直接記述できないのでCHR$関数を用いて代用します。

"Hello!"
"1 2 3 4"
"123"
"BASIC"
"load "+CHR$(&H22)+"B:\FILE"

perlでは,文字数の制限はなく,その前後をシングルクォーテーション(')か ダブルクォーテーション(")で囲んだものです。

"Hello!"
"1 2 3 4"
"123"
'BASIC'

シングルクォーテーションの場合

(')と(\)を文字列中に記述する場合は,(\)の直後に文字を置きます。

'can\'t open' は can't open という文字列
'\\1,000' は \1,000 という文字列
'"dog"' は "dog" という文字列
'Hello!\n' は Hello!\n という文字列
'Ans = $a' は Ans = $a という文字列

ダブルクォーテーションの場合

(\)を文字列中に記述した場合は,(\)の直後の文字によって特別な意味を持ちます。 このことをエスケープすると呼びます。
また,変数名を書いておくとその内容に置き換えられます。

"can't open" は can't open という文字列
"\\1,000" は \1,000 という文字列
"\"dog\"" は "dog" という文字列
"Hello!\n" は Hello!と改行 という文字列
"Ans = $a" は Ans = 10 という文字列($aの値が10の場合)

おもなエスケープ文字

\n 改行 (0A)16
\r 復帰 (0D)16
\0 8進数文字コード \0101は(101)8 = (41)16 文字A
\x 16進数文字コード \x41は(41)16 文字A
\" ダブルクォート "
\\ 逆スラッシュ \

文字列をパターンとして扱う場合は,ピリオド(.)は(\.)と記述しましょう。

ヒア文字列

シングルクォーテーションとダブルクォーテーション文字列以外にヒア文字列があります。

$mail = "Dear Kibitaro\n";
$a = <<EOF;  # 文字列"EOF"のある行までの値が$aに代入される
From: kibita@orange.or.jp
To: pingu@foo.co.jp
Subject: Hello!

$mail
EOF
open(ML,"|/usr/bin/sendmail -t");
print ML "$a";
close(ML);

$mail = "Dear Kibitaro\n";
open(ML,"|/usr/bin/sendmail -t");
print ML <<EOF;  # 文字列"EOF"のある行までの値がコマンドにパイプされる
From: kibita@orange.or.jp
To: pingu@foo.co.jp
Subject: Hello!

$mail
EOF
close(ML);


2.2.数値型

N88BASICでは,整数型(8・10・16進)と実数型(単・倍精度)があります。

  1. 整数型
    1. 10進数(-32768〜+32767)
      32767, -123, +5
    2. 8進数(OCT:頭に&Oまたは&を伴い,0〜7までの並びで&0〜&177777)
      &123, &O456
    3. 16進数(HEX:頭に&Hを伴い,0〜Fまでの並びで&H0〜&HFFFF)
      &HA, &H1FF
  2. 実数型
    1. 単精度(有効桁7桁で-1.70141E+38〜1.70141E+38)
      3276.71, 3.14!, -7.15E-5
    2. 倍精度(有効桁16桁で-1.701411834604692D+38〜1.701411834604692D+38)
      123276.713, 3.14159265#, -1.687315D-38

perlでは,整数と実数がありますが内部的には実数(C言語のdoubleの精度)として扱われています。

  1. 整数
    1. 10進数
      32767, -123, +5
    2. 8進数(頭に0を伴う)
      0123, 0456
    3. 16進数(頭に0xを伴う)
      0xa, 0x1ff, -0x7f
  2. 実数
    7.15e7, 7.15E7, -7.15e-5, 3.14e43
  3. ありがちな間違い
    見栄えを良くするために桁合わせをする場合
    $val1 = 012;  #(12)8 = (10)10
    $val2 = 345;
    $val3 = 678;
    

[HOME]

Copyright (c)1996-99 GOMASUKE
Since 09/14/1996, Last Updated 01/11/1999