平成28年春季  問8アルゴリズム設問2について

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
さん  
(No.1)
設問2でtempの説明が8bit論理型とありますが、
配列の要素数は25個(=DataMax)ありますし、入っている要素は
文字か数字ですし、どこが8bit論理型なのでしょうか。
2021.02.04 15:10
健闘お祈りしますさん 
(No.2)
8bit論理型=8ビットの2進数を格納できる型です。
(Java言語などのbooleanとは別とお考え下さい)
8ビットであればなんでも格納できる、という意味です。

文字か数字が入るのに何で8bit論理型なのか?というご質問かと思います。
Data[]・temp[]を整数型で定義すると整数しか格納できません。文字型で定義すると文字しか格納できません。
ですが、Data[]もtemp[]も、同じ配列内に文字も数字も両方格納できなければこのアルゴリズムは動きません。

そのため、「どんなビット列でも格納できるよ」とするために8bit論理型で定義しています。
文字も数字もメモリの中を見ればただのビット列です。
8bit論理型であれば、どちらも区別せず格納できます。

Data[]・temp[]に値を格納する際は何でもいいから格納する。
取り出す場合は、取り出してから整数が入っているべき場合は整数として、文字が入っているべき場合は文字として処理を行っています。
2021.02.05 14:23
さん  
(No.3)
>健闘をお祈りします  さん

返信いただきありがとうございます。
理解することができました。
ここでいうData[]・temp[]は8bit論理型の配列、つまり
8bit2進数の配列。
例えばData[](3)={4,a,b,e}だとしたら
ASCIIコードを使う場合と考えると本当の配列の中身は
Data[0]=[0000 0100]
Data[1]=[0100 0001]
Data[2]=[0100 0010]
Data[3]=[0100 0101]
ということですかね。
2021.02.08 11:23
健闘お祈りしますさん 
(No.4)
> スレ主様

お役に立てて何よりです。

> ASCIIコードを使う場合と考えると本当の配列の中身は
> Data[0]=[0000 0100]
(以下略)
その通りです。
数字が入っているべき位置の配列要素は数字(明記していませんが2進数でしょう)として処理するアルゴリズムです。
万が一数字であるべき位置に間違えて文字を入れてしまっていると、Data[]の長さを超える文字列を格納しているということになってしまい、異常終了するかと思います。

2021.02.09 14:36

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop