● 整数を文字列にして ALPHA レジスターに追加する
$\mathrm{X}$ レジスターに入っている数値の整数部を ALPHA レジスターに追加するには, $\mathrm{AIP}\, (\text{Alpha append Integer Part})$ 機能を使用する.
例として ALPHA レジスターに "$\mathtt{The~smallest~perfect~number~is~}$" という文字列が入っているとする.
(1) 数値を $\mathrm{X}$ レジスターに入れる. 例として 6.34 という数値を $\mathrm{X}$ レジスターに入れた場合を考える.
\begin{align*}
\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{Y:} & \qq - \\
\Mt{X:} & \qq\Mt{6.34}
\end{align*}
(2) 以下を実行する.
\begin{equation*}
\Mr{PGM.FCN} \qq \Mr{AIP}
\end{equation*} $\Mr{X}$ レジスター内の数値 6.34 の整数部 6 が文字列に変換されて, 現在の ALPHA レジスターの末尾に追加される.
この状態で現在の ALPHA レジスターの内容をディスプレイに表示すると次のようになっている.
\begin{equation*}
\Mt{The~smallest~perfect~number~is~6}
\end{equation*}
● 数値を文字に変換して ALPHA レジスターに追加する
$\Mr{X}$ レジスターに入っている文字コードデータを対応する文字データに変換するには, $\Mr{XTOA}\, (\text{X TO Alpha})$ 機能を使用する.
(1) 文字コードを $\Mr{X}$ レジスターに入れる. HP-42S で使用している文字コードは 0 から 255 まである.
・ 32 〜 126 (16 進数では 0x20 〜 0x7E) の範囲は ASCII コード.
・ 0 〜 31 (16 進数では 0x00 〜 0x1F) の範囲は記号 (数学記号や単位記号など).
・ 127 (16 進数では 0x7F) は追加記号 $\vdash$. この記号は, プログラム内で複数行にまたがって一つの文字列を記述する際に 2 行目以降の先頭に使用する. 次の通り:
\begin{align*}
\Mt{00} & \qq\Mt{"I~have~been"} \\
\Mt{01} & \qq\vdash\Mt{"~away~from~Japan"} \\
\Mt{02} & \qq\vdash\Mt{"~for~a~year."} \\
\end{align*} 追加記号は文字列の入力中に $\Mr{ENTER}$ キーを押すことにより入力できる.
ちなみにこの 3 行のプログラムを実行すると ALPHA レジスターの内容が
\begin{equation*}
\Mt{I~have~been~away~from~Japan~for~a~year.}
\end{equation*} という文字列になる.
・ 128, 129 (16 進数では 0x80, 0x81) は非印字可能文字.
・ 130 〜 255 (16 進数では 0x82 〜 0xFF) は未使用.
(1) いずれかの文字コード (0 〜 255) を入力する.
(2) 以下を実行する.
\begin{equation*}
\Mr{PGM.FCN} \qq \Mr{XTOA}
\end{equation*} これで (1) で入力した文字コードが英数字に変換されて, 対応する文字が ALPHA レジスターに追加される.
たとえば, ALPHA レジスターに
\begin{equation*}
\Mt{"What's~up"}
\end{equation*} という文字列が入っているとする. この末尾に '$\Mt{?}$' を文字コード入力で追加する場合, 次のようにする.
'$\Mt{?}$' の文字コードは 63 (16 進数では 0x3F) である. $\Mr{X}$ レジスターにこの文字コード 63 を入力する.
\begin{align*}
\Mt{Y:} & \qq - \\
\Mt{X:} & \qq\Mt{63}
\end{align*} この状態で
\begin{equation*}
\Mr{PGM.FCN} \qq \Mr{XTOA}
\end{equation*} を実行する.
この後, ALPHA レジスターの内容を表示すると
\begin{equation*}
\Mt{"What's~up?"}
\end{equation*} となっていて, 元々の文字列の末尾に '$\Mt{?}$' が追加されている.
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image