内容へ移動
講義(山本裕樹)
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
numericalipa:ans1
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== 【数値情報処理a】第1回の答え ====== ===== 課題 ===== 以下の問に答えなさい。 (1) RStudio の自分のユーザー名を16進数の整数とみなして10進数に変換しなさい。 例えば、ユーザー名が「c123456」だったら「c123456」を16進数の整数とみなす。 (2) RStudio の自分のユーザー名の前に「0.」をつけて16進数の小数とみなして10進数に変換しなさい。 例えば、ユーザー名が「c123456」だったら「0.c123456」を16進数の小数とみなす。 (3) (2) で求めた10進数の値に $16^{7}$ をかけるといくつになるか求めなさい。 ===== 解答例 ===== 「c123456」の場合 ---- (1) <code rsplus> > strtoi("c123456", 16) [1] 202519638 </code> もしくは、各桁を 10 進数に変換して \begin{eqnarray} a_{7}&=&(\mathrm{c})_{16}=12\\ a_{6}&=&(\mathrm{1})_{16}=1\\ a_{5}&=&(\mathrm{2})_{16}=2\\ a_{4}&=&(\mathrm{3})_{16}=3\\ a_{3}&=&(\mathrm{4})_{16}=4\\ a_{2}&=&(\mathrm{5})_{16}=5\\ a_{1}&=&(\mathrm{6})_{16}=6 \end{eqnarray} これより \begin{eqnarray} &&a_{7}\times 16^{6}+a_{6}\times 16^{5}+a_{5}\times 16^{4}+a_{4}\times 16^{3}+a_{3}\times 16^{2}+a_{2}\times 16^{1}+a_{1}\times 16^{0}\\ &=&12\times 16^{6}+1\times 16^{5}+2\times 16^{4}+3\times 16^{3}+4\times 16^{2}+5\times 16^{1}+6\times 16^{0} \end{eqnarray} R で計算すると <code rsplus> > 12*16^6+1*16^5+2*16^4+3*16^3+4*16^2+5*16^1+6*16^0 [1] 202519638 </code> ---- (2) 16進数で桁を7桁ずらすと整数として計算できるので、(1)で求めた値が使える。 \[ (\mathrm{0.c123456})_{16}=(\mathrm{c123456})_{16}\times 16^{-7}=202519638\times 16^{-7} \] R で計算すると <code rsplus> > 202519638*16^(-7) [1] 0.7544444 </code> デフォルトだと7桁までの表示になるので、小数第7位までしか求められない。 表示桁数を最大の 22 桁に変更すると <code rsplus> > print(202519638*16^(-7), digits = 22) [1] 0.7544444426894187927246 </code> 小数第22位まで求められる。 もしくは、各桁を 10 進数に変換して \begin{eqnarray} b_{1}&=&(\mathrm{c})_{16}=12\\ b_{2}&=&(\mathrm{1})_{16}=1\\ b_{3}&=&(\mathrm{2})_{16}=2\\ b_{4}&=&(\mathrm{3})_{16}=3\\ b_{5}&=&(\mathrm{4})_{16}=4\\ b_{6}&=&(\mathrm{5})_{16}=5\\ b_{7}&=&(\mathrm{6})_{16}=6 \end{eqnarray} これより \begin{eqnarray} &&b_{1}\times 16^{-1}+b_{2}\times 16^{-2}+b_{3}\times 16^{-3}+b_{4}\times 16^{-4}+b_{5}\times 16^{-5}+b_{6}\times 16^{-6}+b_{7}\times 16^{-7}\\ &=&12\times 16^{-1}+1\times 16^{-2}+2\times 16^{-3}+3\times 16^{-4}+4\times 16^{-5}+5\times 16^{-6}+6\times 16^{-7} \end{eqnarray} R で計算すると <code rsplus> > 12*16^(-1)+1*16^(-2)+2*16^(-3)+3*16^(-4)+4*16^(-5)+5*16^(-6)+6*16^(-7) [1] 0.7544444 </code> <code rsplus> > print(12*16^(-1)+1*16^(-2)+2*16^(-3)+3*16^(-4)+4*16^(-5)+5*16^(-6)+6*16^(-7), digits = 22) [1] 0.7544444426894187927246 </code> ---- (3) 小数第7位までを使って計算すると (1) の値と少しずれる。 <code rsplus> > 0.7544444*16^7 [1] 202519627 </code> 小数第22位までを使って計算すると (1) の値と一致する。 <code rsplus> > 0.7544444426894187927246*16^7 [1] 202519638 </code>
numericalipa/ans1.txt
· 最終更新:
2026/04/15 23:52
by
yuki
ページ用ツール
文書の表示
バックリンク
文書の先頭へ