アフィリエイト広告を利用しています

2018年11月03日

HP-42S: 英数字データの取り扱い (2)

HP-42S での英数字データの取り扱いについて, 残りの機能をまとめておく.
せっかく時間をかけて理解したと思えるところまで来た.
書いておけば自分の復習にもなる.

● ALPHA レジスター内の文字の検索

ALPHA レジスターの内容を検索して特定の文字を探すことができる.
これには $\mathrm{POSA} \, (\text{POSition in Alpha})$ 機能を使用する.

ALPHA レジスターに
\begin{equation*}
\newcommand{\Ar}[1]{\mathrm{Ar}(#1)}
\newcommand{\ar}{\mathrm{ar}}
\newcommand{\arop}{\Opp{\mathrm{ar}}}
\newcommand{\Cocone}[2]{\mathrm{Cocone}(#1,#2)}
\newcommand{\Colim}{\mathrm{colim}}
\newcommand{\CommaCat}[2]{(#1 \downarrow #2)}
\newcommand{\Cone}[2]{\mathrm{Cone}(#1,#2)}
\newcommand{\Func}[2]{\mathrm{Func}(#1,#2)}
\newcommand{\Hom}{\mathrm{Hom}}
\newcommand{\Id}[1]{\mathrm{id}_{#1}}
\newcommand{\Mb}[1]{\mathbf{#1}}
\newcommand{\Mr}[1]{\mathrm{#1}}
\newcommand{\Ms}[1]{\mathscr{#1}}
\newcommand{\Mt}[1]{\mathtt{#1}}
\newcommand{\Nat}[2]{\mathrm{Nat}(#1,#2)}
\newcommand{\Ob}[1]{\mathrm{Ob}(#1)}
\newcommand{\Opp}[1]{{#1}^{\mathrm{op}}}
\newcommand{\Pos}{\mathbf{Pos}}
\newcommand{\q}{\hspace{1em}}
\newcommand{\qq}{\hspace{0.5em}}
\newcommand{\Rest}[2]{{#1}|{#2}}
\newcommand{\Sub}{\mathrm{Sub}}
\newcommand{\Src}{d^{0,\mathrm{op}}}
\newcommand{\Tgt}{d^{1,\mathrm{op}}}
\Mt{I~have~been~away~from~Japan~for~a~year.}
\end{equation*} という文字列が入っているとする.

ALPHA レジスター内の文字 '$\Mt{a}$' (文字コードは 97, 16 進数では 0x61) を検索するには, 次の操作を行う.
(1) $\Mr{X}$ レジスターに文字コード 97 を入力する.
\begin{align*}
\Mt{Y:} & \qq - \\
\Mt{X:} & \qq\Mt{97}
\end{align*} (2) この状態で
\begin{equation*}
\Mr{CATALOG} \qq \Mr{FCN} \qq \Mr{POSA}
\end{equation*} を実行する. 一致する文字があると, その文字の ALPHA レジスター内における位置番号 (左端の先頭文字の位置番号を 0 とする) が $\Mr{X}$ レジスターに入る.
\begin{align*}
\Mt{Y:} & \qq - \\
\Mt{X:} & \qq\Mt{3}
\end{align*} $\Mr{X}$ レジスター内の 3 は, ALPHA レジスター内の文字列 "$\Mt{I~have~been~away~from~Japan~for~a~year.}$" に現れる最初の '$\Mt{a}$' の位置番号が 3 であることを意味する.

● ALPHA レジスター内の文字列の長さ

ALPHA レジスターに保存されている文字列の長さを求めるには $\Mr{ALEN} \, (\text{Alpha LENgth})$ 機能を用いる.
上記と同じ文字列 "$\Mt{I~have~been~away~from~Japan~for~a~year.}$" が ALPHA レジスターに入っている場合,
\begin{equation*}
\Mr{CATALOG} \qq \Mr{FCN} \qq \Mr{ALEN}
\end{equation*} を実行するとディスプレイにこの文字列の長さ 39 が表示される.
\begin{align*}
\Mt{Y:} & \qq - \\
\Mt{X:} & \qq\Mt{39}
\end{align*}
● ALPHA レジスターのシフト

$\Mr{ASHF}\, (\text{Alpha SHiFt})$ 機能を使用すると, 現在の ALPHA レジスターの内容が左に 6 文字シフトされる. つまり, 先頭から 6 文字が削除される.

$\Mr{ASHF}$ 機能を使用する例として, $\Mr{ASTO}$ 機能を使用して, レジスターの $01$ 番に ALPHA レジスターの内容をコピーする場合を考える.

現在の ALPHA レジスターに文字列
\begin{equation*}
"\Mt{My~favorite~recreation~is~traveling.}"
\end{equation*} が入っているとする. ここで
\begin{equation*}
\Mr{ASTO} \qq 01
\end{equation*} を実行すると, レジスター $01$ 番 $\Mr{R}_{01}$ に ALPHA レジスターの内容の先頭から 6 文字がコピーされる. レジスター $\Mr{R}_{01}$ の内容を
\begin{equation*}
\Mr{RCL} \qq 01
\end{equation*} によって確認すると,
\begin{align*}
\Mt{Y:} & \qq - \\
\Mt{X:} & \qq\Mt{"My~fav"}
\end{align*} となり, 確かにレジスター $\Mr{R}_{01}$ に ALPHA レジスターの先頭から 6 文字がコピーされている.

ALPHA レジスターの先頭から 6 文字がレジスター $\Mr{R}_{01}$ にコピーされたことによって, 元のデータが不要になり削除したい場合に $\Mr{ASHF}$ 機能を利用する.
\begin{equation*}
\Mr{CATALOG} \qq \Mr{FCN} \qq \Mr{ASHF}
\end{equation*} こうすると, ALPHA レジスターの内容は左へ 6 文字分シフトされて
\begin{equation*}
"\Mt{orite~recreation~is~traveling.}"
\end{equation*} になる.

● ALPHA レジスターの回転

$\Mr{AROT}\, (\text{Alpha ROTation})$ 機能を使用すると, 現在の ALPHA レジスターの内容を $\Mr{X}$ レジスターに入っている数値の分だけ回転させることができる. $\Mr{X}$ レジスターの数値が正の場合は左に回転し, 負の場合は右に回転する. 一般に数値の小数点以下は捨てられて整数部が使用される.

例えば ALPHA レジスターに
\begin{equation*}
\Mt{ABCDEFGHIJKLMNOP}
\end{equation*} という文字列が入っているとして,
\begin{equation*}
1 \qq \Mr{CATALOG} \qq \Mr{FCN} \qq \Mr{AROT}
\end{equation*} を実行する.

この結果, ALPHA レジスターの内容が左に 1 文字回転して
\begin{equation*}
\Mt{BCDEFGHIJKLMNOPA}
\end{equation*} となる. これに続けて
(1) $-5 \qq \Mr{CATALOG} \qq \Mr{FCN} \qq \Mr{AROT}$
(2) $4.8 \qq \Mr{CATALOG} \qq \Mr{FCN} \qq \Mr{AROT}$
を実行する.

(1) を実行した後には ALPHA レジスターの内容は右に 5 文字回転して
\begin{equation*}
\Mt{MNOPABCDEFGHIJKL}
\end{equation*} となる.

それから (2) を実行すると ALPHA レジスターの内容は左に 4 文字回転して
\begin{equation*}
\Mt{ABCDEFGHIJKLMNOP}
\end{equation*} となる.

HP-42S のマニュアルの先の方を読むと, ここで挙げた ALPHA レジスター内の英数字データの操作機能が図形描画などにも使用されている. また理解するのに時間がかかりそうだが面白そうだ.
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

この記事へのトラックバックURL
https://fanblogs.jp/tb/8263409

この記事へのトラックバック
ファン
検索
<< 2024年10月 >>
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
最新記事
最新コメント
眼科の定期検査 〜 散歩 by コトタマ (02/15)
眼科の定期検査 by 三文字寄れば文殊のヒフミヨ (09/21)
本を読んで過ごす by 底彦 (12/13)
本を読んで過ごす by ねこ (12/12)
数学の計算をする by 底彦 (12/04)
タグクラウド
カテゴリアーカイブ
仕事(59)
社会復帰(22)
(43)
コンピューター(211)
(1417)
借金(8)
勉強(13)
(12)
数学(97)
運動(8)
日常生活(1387)
(203)
健康(37)
読書(20)
プロフィール

ブログランキング・にほんブログ村へ
にほんブログ村
にほんブログ村 メンタルヘルスブログ うつ病(鬱病)へ
にほんブログ村
にほんブログ村 科学ブログ 数学へ
にほんブログ村
にほんブログ村 IT技術ブログ プログラム・プログラマーへ
にほんブログ村