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

2018年10月31日

HP-42S: ALPHA レジスターへのデータの呼び出し操作についての付記

前回の続き.

● 整数を文字列にして 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{?}$' が追加されている.
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

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

この記事へのトラックバック
ファン
検索
<< 2024年11月 >>
          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
最新記事
最新コメント
眼科の定期検査 〜 散歩 by コトタマ (02/15)
眼科の定期検査 by 三文字寄れば文殊のヒフミヨ (09/21)
本を読んで過ごす by 底彦 (12/13)
本を読んで過ごす by ねこ (12/12)
数学の計算をする by 底彦 (12/04)
タグクラウド
カテゴリアーカイブ
仕事(59)
社会復帰(22)
(44)
コンピューター(211)
(1440)
借金(8)
勉強(13)
(13)
数学(97)
運動(8)
日常生活(1402)
(204)
健康(38)
読書(21)
プロフィール

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