...

序章 - 日経BP書店

by user

on
Category: Documents
17

views

Report

Comments

Transcript

序章 - 日経BP書店
序章
基本情報技術者に必要な
知識とスキル
序章 基本情報技術者に必要な知識とスキル
これから皆さんが学習を始める基本情報技術者試験について、受験対策について必
要な知識とスキルについて確認しましょう。ここでは、各章の学習内容の概略を、具
体的な事例を用いて説明することで、基本情報技術者の学習範囲の全体像をつかめる
ようにすることを目的にします。
基本情報技術者とは
皆さんは、「基本情報技術者」と聞いて、どのような技術者を想像するでしょうか。
プロジェクトマネージャであればプロジェクトのマネジメントをする人、ネットワー
クスペシャリストであればネットワークの専門家をイメージできます。しかし、皆さ
んがこれから学習する「基本情報技術者」とは、「基本」的な情報技術を持っているだ
ろうという程度しか想像できません。
そこで、この章では実際に出題される範囲の知識や技術にはどのようなものがある
のかをご紹介します。特に、現在IT業界にいらっしゃらない方は、受験参考書など
を見ても何を説明しているのか分からないという方もいらっしゃるかと思います。そ
こで、インターネットを利用したオンラインショッピングサイトを構築するという例
で説明します。オンライン書店を実現するための要素・業務が、本書の各章で扱う出
題範囲の解説にどのように対応するのか確認していきましょう。インターネットを利
用したオンラインショッピングサイトのイメージがわかない人は、日経BP書店のサ
イトをご覧ください(http://ec.nikkeibp.co.jp/)。
第1章 情報の基礎理論
この章の出題範囲は、すべてのコンピュータに共通する基礎となる理論(コンピュー
タサイエンス)です。オンライン書店を実現するために必要なコンピュータそのもの
の原理について学習します。
(1)コンピュータの原理と2進数
皆さんはコンピュータの動作原理をご存知でしょうか。さまざまな複雑な計算を
行っているコンピュータが、実は2進数の足し算しかできないというと大抵の人は驚
きます。なぜ2進数なのかというと、それはコンピュータを構成する基本的な素子が
電気が通っているか通っていないか(正確には電圧が高いか低いか)の二つの状態を
保持する機能をもち、それを基に数値や演算を実現しているためです。
電気が通っていない
電気が通っている
図 二つの状態
電気が通っていない状態を0、電気が通っている状態を1として、二つの数字ですべ
てを表そうとしたのです。つまり、数値は2進数で表すことになります。2進数は0、1
の2種類の数字しか扱わないため、大きな数を表すときには人間にとても読みにくく
なります。そこで、数値を表現するときには16進数も利用するようになりました(コ
ンピュータの内部は2進数のままです)。
表 10進数と2進数、16進数の対応表
10進数
2進数
16進数
10進数
2進数
16進数
1
1
1
9
1001
9
2
10
2
10
1010
A
3
11
3
11
1011
B
4
100
4
12
1100
C
5
101
5
13
1101
D
6
110
6
14
1110
E
7
111
7
15
1111
F
8
1000
8
16
10000
10
2進数、16進数ともに私たちの日常生活では馴染みがないものですが、コンピュー
タの原理を理解するためには必須の知識です。相互に変換できるようになりましょ
う。また、足し算だけで引き算や掛け算、割り算など、2進数の演算を行う仕組みな
どについても学習しましょう。
(2)情報単位と補助単位
コンピュータで示すことのできる最小限の情報単位をビットとよびます。1ビット
は、1か0の値を持ちます。つまり、2進数1けたと同じ情報量です。8ビットの情報量
をまとめて1バイトとよびます。皆さんがお持ちの携帯電話や携帯音楽プレーヤー、
ディジタルカメラなどにはメモリーカードなどの記憶媒体が利用されているはずで
基本情報技術者に必要な知識とスキル
電気が通っている
1
序
章
電気が通っていない
0
序章 基本情報技術者に必要な知識とスキル
す。その容量を表す単位として、バイトが使われます。最近では、メモリ容量が1G
バイトのメモリーカードが1,000円以下で販売されるなど低価格化が進んでいます。
では、その1Gバイト(ギガバイト)とはいったいどのくらいの記憶容量なのでしょう
か。次に示す補助単位の表で確認しましょう。
表 補助単位
記号
T
G
M
k
m
μ
n
p
読み方
テラ
ギガ
メガ
キロ
ミリ
マイクロ
ナノ
ピコ
乗数で表現
10
12
実数
1,000,000,000,000
9
1,000,000,000
6
1,000,000
3
1,000
-3
0.001
10
-6
0.000001
10
-9
0.000000001
10
-12
10
10
10
10
0.000000000001
つまり、1Gバイトとは、10億バイト=80億ビットということです。なお、80億ビッ
トあると、どれくらいの文字が、音楽が、動画が記録できるのかということも、この
章で学習します。
このほか、小さな補助単位も併せて覚えておきましょう。コンピュータの動作は非
常に高速です。パソコンでも、1秒間に数億個の命令を実行できます。1命令当たりの
実行時間は、0.000000001秒の単位です。このようなコンピュータの動作を表す時間
として、小さな値を表すための補助単位も必要となってきます。
コンピュータの動作原理は、コンピュータを利用していてもなかなか見えるもので
はありません。また、基本情報技術者はコンピュータそのものを開発する仕事ではあ
りません。したがって、基礎理論を知らなくとも仕事を行うことはできそうです。し
かし、基礎理論を知っていることにより、新しい技術の理解が容易になること、原理
原則に伴う考え方ができることから、基礎教養としても身に付けたい分野です。
第2章 コンピュータシステム
(1)ハードウェア
ハードウェアとは、本来“金物”のことですが、コンピュータシステムでは、コン
ピュータ本体とその周辺機器のことをハードウェアとよんでいます。ハードウェア=
それでは、オンライン書店を例にとって、利用者側のハードウェアから確認してい
呼称)とよびます。
クライアント側のハードウェア構成は、皆さんが利用しているパソコンと同じです。
まず、本体であるコンピュータがあります。コンピュータの内部には制御装置、演算
装置、記憶装置があります。そして、ディスプレイやプリンタといった出力装置、キー
ボードやマウスといった入力装置があります。また、インターネットに接続するため
のルータなどのネットワーク機器があります。このような各コンピュータのハード
ウェアは、五つの機能(5大装置)として表すことができます。
制御装置
演算装置
入力装置
記憶装置
情報の流れ
出力装置
制御の流れ
図 コンピュータの5大装置
ただし、現在のコンピュータは演算装置と制御装置が一体化されたCPU(Central
Processing Unit:中央処理装置)が中心です。また、記憶装置は主記憶装置(メイン
メモリ)と補助記憶装置に分かれています。そして、これらのハードウェア同士を接
続するインタフェースが必要です。これらを図に表すと次のようになります。
基本情報技術者に必要な知識とスキル
きましょう。利用者側をクライアント(サービスを依頼して、サービスを受ける側の
序
章
目に見えて触れる機器とイメージできればよいでしょう。
序章 基本情報技術者に必要な知識とスキル
CPU
インタフェース
入力装置
主記憶装置
(メインメモリ)
ネットワーク装置
補助記憶装置
(ストレージ)
出力装置
図 現在のコンピュータの構成例
ハードウェアについて学ぶべき項目は、次の四つに集約されます。
①CPUアーキテクチャ
コンピュータの頭脳ともよぶべきCPUの仕組みです。コンピュータがどのように
命令を実行しているのか、CPUはどのように発展・進化しているかを学びます。現
在のコンピュータはほぼすべてがノイマンアーキテクチャとよばれるアーキテクチャ
を採用しています。メインメモリ(主記憶装置)に命令を格納し、それを一つずつ取
り出してCPUが実行します。
②メモリアーキテクチャ
CPUが実行する命令や、そこで処理されるデータはすべてメインメモリに格納さ
れています。また、メインメモリは揮発性なのでコンピュータの電源を切るとその内
容が失われてしまいます。そこで、磁気ディスクやフラッシュメモリなどの不揮発性
(電源を切っても内容が保持される)の外部記憶装置が必要になります。現在は、携
帯電話や携帯音楽プレーヤーなどでフラッシュメモリがよく利用されています。この
ような記憶装置について学びます。
③I/O(Input/Output:入出力)アーキテクチャ
ディスプレイやプリンタ、スキャナなどのさまざまな入出力装置について学びます。
④インターフェース
インタフェースとは接点という意味です。ここまで説明したCPU、記憶装置、入
出力装置などを接続するための技術について学びます。
コンピュータを利用するには、ハードウェアだけではなく、ソフトウェアが必要と
トウェアとは、ある目的のために利用されるコンピュータのプログラムのことです。
オンライン書店のクライアント側では、パソコンを利用していました。そこではま
ず、パソコンを使うために必要なOS(Operating System:オペレーティングシステ
ム)が必要となります。WindowsやMAC OS、Linuxなどさまざまなクライアント用
のOSが存在します。そして、OSだけではなくWebサイトにアクセスするためのWeb
ブラウザも必要です。
クライアント側だけではなく、サーバ側もソフトウェアが必要です。サーバとは、
クライアントの依頼に応じて、サービスを提供する側のことです。
サーバとして使用されるコンピュータには、サーバOSが必要となります。クライ
アントのOSとは異なり、多くの利用者の要求を同時に処理する必要があるので専用
のサーバOSを利用することが一般的です。そして、Webブラウザからの要求を受付、
Webページのデータを返すWebサーバのソフトウェアが必要です。
ただし、これだけではショッピングサイトは構築できません。クライアントからの
依頼に応じて商品を紹介し、注文の受付を行うプログラムが必要です。このように業
務処理(今回は書籍の販売処理)を行うソフトウェアをアプリケーションプログラム
とよびます。また、大量のデータを効率よく安全に管理するためのデータベースを構
築 し ま す が、 デ ー タ ベ ー ス を 管 理 す る た め のDBMS(Data Base Management
System:データベース管理システム)も必要となります。
Webサーバ
(Apacheなど)
Webブラウザ
(InternetExplorer、
FireFox、Safariなど)
OS
(Windows、Mac OS、Linuxなど)
クライアントPC
オンライン書店の
アプリケーションプログラム
DBMS
(Oracle、MySQLなど)
OS
(Windows Server、Linuxなど)
サーバ
図 ソフトウェアの構成例
基本情報技術者に必要な知識とスキル
なります。ソフトウェアとは、ハードウェアに対する言葉として生まれました。ソフ
序
章
(2)ソフトウェア
序章 基本情報技術者に必要な知識とスキル
本書で学習するコンピュータのソフトウェアを分類すると次のようになります。
アプリケーション
ソフトウェア
各種業務処理
(販売、生産、人事など)
ワープロ、表計算など
プロセス管理、記憶管理
など
(狭義のOS)
ソフトウェア
オペレーティング
システム
(広義)
ユーティリティ、
エディタ、言語処理系など
デバイスドライバなど
ミドルウェア
DBMS、アプリケーション
サーバ、通信基盤など
図 ソフトウェアの分類
この中で基本情報技術者試験で主に出題されるのはOS(オペレーティングシステ
ム)であり、OSの動作原理や機能や役割について出題されます。OSは、ハードウェ
アの性能を引き出し、利用者にとって使いやすい環境を提供します。
第3章 ネットワーク
オンライン書店は、離れた場所にいる利用者が24時間書籍の注文を可能にするため
にコンピュータネットワーク(コンピュータ同士が通信回線で接続されている状態)
が必須です。
(1)ネットワークの種類
ネットワークの構成は、大きく分けてLANとWANに分かれます。そして、LANと
WANの集合体としてインターネットが存在します。
①LAN(Local Area Network)
LANは、オフィスの中や建物の中、同一敷地内など、利用者が自ら敷設した通信
回線を利用して構築するネットワークを指します。つまり、NTTをはじめとする電
気通信事業者が提供する通信サービスを利用しないネットワークです。
WANは、企業やさまざまな組織のLANを電気通信事業者が提供する通信サービス
深い電話回線をはじめ、インターネット接続用のADSL回線、データ通信専用回線な
どさまざまなサービスがあります。
③インターネット
国や組織の壁を越えてコンピュータ同士を相互に接続した、世界最大規模のWAN
のことです。通信プロトコルには、TCP/IP(後述)を用いています。インターネット
に自分のコンピュータを接続すれば、そのコンピュータからインターネットに接続さ
れた世界中のコンピュータと通信(電子メールやホームページの閲覧など)ができま
す。
オンライン書店のシステムでは、これらのネットワークを利用しています。
ADSLモデム
ADSL
サービス
家庭から個人でインターネット
接続をして、オンライン書店に
アクセスする
オンライン書店
専用線
サービス
インターネット
ルータ
専用線
サービス
Web
サーバ
メール
サーバ
その他、データベースサーバなど
職場や学校のLANか ら 、 イ ン
ターネットに接続してオンライ
ン書店にアクセスする
図 オンライン書店のネットワーク構成例
(2)プロトコル
人が電話で話をする、郵便で手紙をやり取りすることも通信です。このときに、さ
まざまな約束ごとがあり、それを守ることで相手と通信ができます。電話の通話の仕
基本情報技術者に必要な知識とスキル
を利用して相互接続した広域ネットワークです。通信サービスには、私達になじみの
序
章
②WAN(Wide Area Network)
序章 基本情報技術者に必要な知識とスキル
組みが世界共通なので、世界中の誰とでも電話があれば通話ができます。郵便も同様
で、住所と番地(できれば郵便番号)が分かれば相手先に手紙を送ることができます。
このような通信をする上での約束ごとをプロトコル(通信規約)とよびます。
私たちがインターネットを使えるのも、コンピュータがインターネットで利用され
るプロトコルを守っているからです。オンライン書店では、主に次のようなプロトコ
ルが利用されています。
表 オンライン書店で利用されている主なプロトコル
プロトコル名
機能
HTTP
Hyper Text Transfer Protocol
WebサーバとWebブラウザの間で、Webページのデー
タをやり取りする。
HTTPS
Hyper Text Transfer Protocol
Secure
HTTPでやり取りするデータを暗号化する。
SMTP
Simple Mail Transfer Protocol
PCから電子メールを送信したり、メールサーバ間で
電子メールを転送したりする。
POP
Post Office Protocol
メールサーバから電子メールを取り出す。
TCP/IP
Transmission Control Protocol
/Internet Protocol
インターネットで利用されるプロトコルの総称。実際
には、TCPとIPという二つのプロトコルから構成され
ている。上述のHTTPやSMTPは、すべてTCP/IPの環
境で利用される。
イーサネット
LANで利用する。
ネットワークの分野では、さまざまなプロトコルの知識の学習が必要です。実は通
信ケーブルの差込口の形状もプロトコルですし、ホームページでの情報の表示方法も
プロトコルです。そのほかに、ビットがどのように送られるのかの通信の基本的な技
術、ネットワークで利用されるさまざまな通信機器、電話やインターネット接続に代
表される通信サービスについても学習します。
第4章 セキュリティ
オンライン書店の利用者の個人情報が漏洩した場合、企業の信頼低下による経営ダ
メージは非常に大きなものとなるでしょう。また、Webサイトを休止することにな
れば、それはそのまま売上の低下につながります。そこで、オンライン書店の資産を
さまざまな脅威から守るための情報セキュリティ対策が必要になります。情報セキュ
リティとは、
「企業や組織の情報システムを脅かすリスクに対して、安全、安心、防
10
とよぶのです。
リスクとは、脆弱性によって引き起こされる脅威の危険性を表す指標のことです。
守るべき情報資産に対して、さまざまな脅威が存在します。すべての脅威が情報資産
を脅かすわけではありません。しかし、脆弱性(ぜいじゃくせい:損失を発生させる
弱点)が存在すると、それは実際に被害を招くことになります。
脅威
リスク
・社会的信用の失墜
・機会損失
など
情報資産
・Webサーバ
・電子メール
・情報システム
・顧客データ
など
・漏洩/改ざん
・サービス停止
・自然災害
・システムの不正利用
など
脆弱性
・利用者の意識
・セキュリティホール
など
図 リスクの概念
(2)情報セキュリティ対策
オンライン書店で具体的に考えられるセキュリティ事故とその対策には、次のよう
なものが考えられます。
11
基本情報技術者に必要な知識とスキル
(1)
リスク
序
章
衛を提供する手段」のことです。つまり、リスクに対する備えのことをセキュリティ
序章 基本情報技術者に必要な知識とスキル
表 セキュリティ事故とその対策例
セキュリティ事故
対策
顧客情報や売上データなどの機密情報
の漏洩や、発注データの改ざん
①暗号化:データを暗号化して、第三者には内容を解読でき
ないようにする。
②ディジタル署名:データに電子的な署名を施し、正当な利
用者以外によるデータの改変を検出する。
インターネット経由によるデータベー
スなどへの不正アクセス
①認証:利用者は、IDとパスワードなどによる認証を行う。
②ファイアウォール:インターネットからの不正なデータの
通過を防止する。
正規の利用者になりすましての不正な
発注や、発注の否認
①認証:IDとパスワードなどにより本人確認を行う。
②ディジタル署名:データに電子的な署名を施し、本人であ
ることを証明する。
ウイルスやワームなどのマルウェア
①ウイルス対策ソフト:マルウェアを検出し、駆除するソフ
トウェアを利用する。
自然災害
①データのバックアップ:データのバックアップを遠隔地に
保管する。
②バ ックアップサイト:遠隔地に万一の場合に利用できる
サーバなどの設備とバックアップデータを用意する。
このように、リスクに対して情報セキュリティ対策を行うには、暗号化やディジタ
ル署名の仕組みなどの知識の学習が必要です。
第5章 システム構成技術
システム構成技術は、コンピュータシステムを目的にかなうように構成するための
技術です。オンライン書店システムのサーバに要求されることを考えてみましょう。
例えば、オンライン書店のサーバは24時間稼働しています。もし、サーバに障害が発
生して停止してしまうと、震災等で書店が壊れて営業が続けられない状態と同じに
なってしまいます。
このように、ミッションクリティカルな業務(中断がビジネスに深刻な影響を与え
る業務)システムの場合、コンピュータシステムに要求されることは止まらないシス
テムです。故障などでシステム停止することなく稼働しつづけられることを信頼性が
高いといい、信頼性が高いシステムを構成する必要があります。
しかし、コンピュータも機械であり、絶対に故障しないコンピュータを作ることは
できません。したがって、信頼性を高めるには、予備のコンピュータを用意して、万
一故障した場合に予備機と切り替えるなどして、システムを並列化します。
12
序
章
複数の機器があれば、
1台に障害が発生して
も、残った機器で運用
が可能である。
図 信頼性を高める構成の例
システム構成には、信頼性のほか処理性能を高めることも目的とする場合もありま
す。オンライン書店が大人気となって、1時間に数万アクセスが発生したとしましょ
う。これを1台のサーバで処理していたら、とても処理が追いつきません。そこで、
ロードバランサ(負荷分散装置)を使って複数台のWebサーバに処理を分散します。
ロードバランサは、Webブラウザからの処理依頼を1台のサーバに集中させず、複数
のサーバに分散して処理を負担させます。1台当たりのサーバの処理性能は変わりま
せんが、複数のサーバで処理を行うので多数のWebブラウザからの要求が集中した
ときには、待ち時間が短縮されます。このように、処理性能の向上もシステム構成で
実現します。なお、この構成ではサーバが複数台存在するので信頼性も向上すること
となります。
Webサーバ1
インターネット
ロードバランサ
(負荷分散装置)
Webサーバ2
Webサーバ3
図 Webサイトの構成例
13
基本情報技術者に必要な知識とスキル
1台では障害発生時に
システムが停止してし
まう。
序章 基本情報技術者に必要な知識とスキル
このようにシステム構成技術では、さまざまな目的を達成するためのシステムの構
成方法のほか、信頼性を数値化する信頼性の計算を学習します。
第6章 データベース
この章で学習するデータベースとは、文字通りのデータの基地、すなわちデータが
集合して格納されているものです。インターネットでさまざまな検索エンジンを利用
した経験はあるでしょうか。これらは、膨大な量の情報を保管し、高速に検索して結
果を表示します。これは、データベースを活用して実現できることです。
オンライン書店でも、書籍の情報やショッピングを行う利用者の情報、そして、誰
がいつどの書籍を買ったというトランザクション(取引)情報を管理する必要があり
ます。このように現在の企業システムにおいてデータベースは欠かせません。大量の
データを効率よく処理していくことがコンピュータシステムに要求されるからです。
データベースは、どのようにデータを管理するかによって種類が分かれます。これ
を、論理データモデルとよびます。企業の情報システムでよく利用されるのは、関係
型データベース(RDB:Relational Data Base)です。
では、実際のオンライン書店のデータベースの一部を確認しましょう。ここでは、
書店で書籍を販売する際にどのような書籍があるかの検索、どの本が、いつ、誰に注
文されたかという受注情報の管理を行うものとします。ここで、三つの表が必要とな
ります。一つは書籍表です。書籍の基本データが格納されています。もう一つは利用
者表です。利用者の氏名や住所などが格納されています。最後は、書籍の注文データ
が格納されている注文表です。
14
序
章
利用者表
利用者名
住所
電話番号
0001
品川英子
******
03-*****
0002
高輪俊雄
******
03-*****
0003
岡田百枝
******
03-*****
基本情報技術者に必要な知識とスキル
利用者番号
書籍表
ISBNコード
書籍名
著者名
出版社名
ジャンル
定価
****1234
ハードウェア
金物鉄夫
日経BP
IT
1,800
****5678
簿記会計
杉山記彦
日経BP
経営
****9123
情報セキュリティ
大切 守
日経BP
IT
900
1,200
注文表
注文番号
注文年月日
利用者番号
ISBNコード
注文数量
金額
080001
2009/1/11
0001
****1234
1
1,800
080002
2009/1/11
0002
****5678
1
900
080003
2009/1/12
0003
****9123
1
1,200
支払方法
着払い
クレジット
着払い
図 RDB(関係データベース)の例
このような関係データベースのデータは、SQLとよばれるデータベース操作用の言
語で利用できます。例えば、2008年12月25日に注文のあった書籍を一覧表示する場合
は次のようなSQLを実行します。表示は、書籍名と出版社名、著者名とします。
SELECT 書籍名,出版社名,著者名
FROM
WHERE
書籍表,注文表
書籍表.ISBNコード = 注文表.ISBNコード AND
注文表.注文年月日 = “2008/12/25”
図 SQLの例
SELECT句で抽出する列の名前、FROM句で使用する表の名前、WHERE句でさま
ざまな条件を与えます。このSQLは、「書籍表のISBNコードと注文表のISBNコード
が一致するデータで、かつ、注文表の注文年月日が2008/12/25のデータの書籍名、出
版社名、著者名を抽出する」ということです。SQLは情報処理技術者試験によく出題
されるので、しっかり学習しておきましょう。
15
序章 基本情報技術者に必要な知識とスキル
第7章 システムの開発
オンライン書店を開設するには、オンライン書店の情報システムを開発する必要が
あります。情報システムの開発は、家作りと似ています。家を建てたいという施主が
いて、工務店が設計と施工を行います。システムの開発では、システムを必要とする
ユーザの要求があり、それをSE(システムエンジニア)が設計し、プログラマが作成
します(大変簡略化した表現ですが、現時点ではこの程度で十分とします)。
システムを開発するには、次のような工程が必要となります。
要件定義
外部設計
プログラミング
内部設計
テスト
プログラム設計
運用・保守
図 システム開発の流れ
①要件定義
利用者の要件を調査し、どのようなシステムとするのかを決定することです。
②外部設計
システムを外から見た設計、すなわち、ユーザにも理解できる部分の設計です。画
面や出力帳票のレイアウトのほか、データベースの論理設計(ユーザから見たデータ
ベースの設計)などが含まれます。オンライン書店では、画面のイメージや、管理帳
票(売り上げの一覧表など)などを設計します。
③内部設計
システムを中から、つまり作り手から見た設計です。外部設計で示されたシステム
を、どのように実装するかを設計します。開発しやすいようにプログラムの分割(モ
ジュール分割)を行ったり、データベースを物理的にどのように配置するかを決める
16
序
章
物理設計などを行います。
1本1本のプログラムの詳細な設計です。流れ図が含まれる場合もあります。これら
は、プログラマが実際にプログラムを作成する際の資料になります。
⑤テスト
そして、設計書に基づいてプログラムを作成し、設計書どおりにプログラムが作成
されたかをテストし、利用者に納品します。
システム開発では、各工程におけるさまざまな技法と実際の設計について出題され
ます。
第8章 マネジメント
この章では、システム開発を適切に管理するためのプロジェクトマネジメント、そ
の後のシステムの運用を管理するためのITサービスマネジメント、開発したシステ
ムが適切に活用、運用されているか評価を行うシステム監査について、各種考え方や
技法について学習します。
(1)プロジェクトマネジメント
情報システムの開発はプロジェクトとして実現されます。プロジェクトとは、限ら
れた期間と資源で目的を達成することです。金融機関のオンラインシステムの開発な
どは、何百人、何千人という人が、何か月、何年もかけて行うものです。今回のオン
ライン書店は小規模なシステムですが、それでも十数名の人が、2〜3か月はかけて取
り組むことになるでしょう。
プロジェクトは、それにかかわる人々が勝手気ままに取り組んでいたのでは、納期
が守れない、予算が超過する、システムが完成しない、といったトラブルが発生しま
す。そこで、計画を立案し、計画に従った活動ができるような体制を整える必要があ
ります。そして、プロジェクトを推進し、計画に従って納期と品質を守ることができ
るような管理が必要です。このような活動を、プロジェクトマネジメントとよびます。
オンライン書店のシステム開発プロジェクトをマネジメントするには、次のような
手順で進めます。
17
基本情報技術者に必要な知識とスキル
④プログラム設計
序章 基本情報技術者に必要な知識とスキル
① プロジェクトの目標と対象範囲を明らかにする。
② ①を基に、必要な作業の洗い出しを行う(WBSの作成)
作業 A
作業 B
作業 D
作業 C
作業 E
作業 F
作業 G
図 WBSの例
③ ②を基に、スケジュールを作成する(PERTの作成)。
作業 D
3日
1
2
5日
4
作業 I
3日
作業 G
2日
作業 F
2日
作業 E
3
作業 J
作業 H
4日
7
5
4日
6
図 PERTの例
④ ③を基に、期間と費用の見積もりを行う。
⑤ リスクを想定し、対応策を検討する。
⑥ ④、⑤を基に、必要な資源(人や機材など)を確保する。
ここまでが準備段階です。準備が整ったら、スケジュールに従ってシステム開発を
進めます。
⑦ スケジュールどおりに進んでいるか進捗の管理を行う。
⑧ 品質をチェックする。
計画通りのスケジュールで品質を確保できているかチェックすることが必要です。
問題が発生した場合は、適切な対処を行います。
18
を行う。
オンライン書店の情報システムを開発しても、それが予定通り所定の機能を発揮す
ることができなければ意味がありません。ITサービスマネジメントは、情報システ
ムを活用するための各種のサービスのことを指します。具体的には、障害発生に備え
たバックアップなどの日常的なものから、障害発生時の対応までさまざまなサービス
が含まれます。
オンライン書店では、障害発生により、顧客の注文情報が失われてしまったり、サー
バが停止して注文を受け付けられなくなったりしては困ります。注文情報を定期的に
バックアップして保管し、障害発生時に迅速な復旧を行えるような体制を整備する必
要があります。
(3)システム監査
システム監査とは、情報システムが経営に貢献しているかどうかを、安全性、効率
性、信頼性など幅広い側面から総合的に調査・評価することです。つまり、経営者が、
情報システムが本当に役立っているか、安全に利用されているかなどをチェックする
ために行うのです。システム監査は、自社内で行うこともありますが、客観性を要求
されるので第三者たる社外のシステム監査人に依頼することも多くあります。
システム監査に関するガイドラインとして、経産省がシステム監査基準を公表して
います。その中で、システム監査の目的として「情報システムにまつわるさまざまな
リスクに対するコントロールが、適切に整備・運用されていることを証明する」ため
に、次のような項目が挙げられています。
・情報システムが、組織体の経営方針及び戦略目標の実現に貢献するため
・情報システムが、組織体の目的を実現するように安全、有効かつ効率的に機能する
ため
・情報システムが、内部又は外部に報告する情報の信頼性を保つように機能するため
・情報システムが、関連法令、契約又は内部規程等に準拠するようにするため
例えば、オンライン書店でのシステム監査を実施するのであれば、次のような点に
注目します。
・オンライン書店の開始は、経営者が企画を十分検討したうえで、社内的な承認を得
19
基本情報技術者に必要な知識とスキル
(2)ITサービスマネジメント
序
章
⑨ プロジェクトの最終的な評価を行い、次回以降のプロジェクトに向けて振り返り
序章 基本情報技術者に必要な知識とスキル
て開始されたものであるか。
・オンライン書店の情報システムは、情報セキュリティについて十分な対応策が施さ
れているか。
・オンライン書店の情報システムは、取引情報や会計情報に誤りが含まれないような
措置が施されているか。
・オンライン書店のシステムは、関連法規や社内規定に沿って構築・運用されている
か。
このような点で、オンライン書店のシステムを評価します。
第9章 企業経営と法務
(1)システム戦略
組織(一般企業や行政機関)の中で、情報システムをどのように活用していくかは
大変重要なことです。現在のように、業務を行うために情報システムが必要不可欠と
なった時代には、システム戦略が組織の命運を分けることになりかねません。そこで、
情報システムに関しても戦略が必要となります。
システム戦略は、経営戦略に基づいて計画されます。経営戦略で示された目標達成
を、情報システムで支援するためにはどうすべきかを考案し、情報システムの戦略を
策定します。オンライン書店の開設も、ただの思い付きではなく、中長期の経営戦略
に基づいて判断されるべきものです。経営におけるオンライン書店の位置付けと今後
の成長などを明文化します。
組織内でシステム戦略の責任者となる人物をCIO(Chief Information Officer)とよ
びます。日本語では、最高情報責任者、情報統括役員などとよばれます。
基本情報技術者試験では、システム戦略の基本的な考え方や、技法やツールの知識
を問われることが多いでしょう。
(2)経営戦略
経営戦略とは、組織をどのよう維持・発展させるかについて、長期的な視点で示し
たものといえます。企業であれば、利益を生み出すことが大切です。そこで、マーケ
ティングを行い、さまざまな情報を収集します。そして、今後の経営を取り巻く環境
の変化などを加味した上で、組織がどのような方向性に進むのかを明確に示します。
企業経営を助けるさまざまな情報システムも活用します。
20
企業活動を助けるための、経営管理技法というものがあります。また、企業活動を
法や考え方、著作権法、労働基準法など私たちが日常知っておくべき法律を中心に学
習します。
第10章 アルゴリズムとプログラミング
オンライン書店の業務を実現するアプリケーションプログラムは、プログラマに
よって開発されます。基本情報技術者試験では、実際にプログラムを開発するのに必
要なアルゴリズムおよびプログラム言語の知識について出題されます。
(1)アルゴリズム
アルゴリズムとは、ものごとの手順を考えることです。コンピュータは、正確に高
速な処理を行いますが、命令されたとおりのことしかできません。つまり、正しく命
令を伝えないと、期待するような結果を得ることができないのです。
そこで、コンピュータに正しく処理を行わせるためにアルゴリズムを考える必要が
あります。このアルゴリズムを表現するための方法に、基本情報技術者試験で出題さ
れる流れ図や擬似言語があります。流れ図は、次のように表します。
AとBを入力
A>B
No
Yes
「Aが大きい」
と表示する
「Bが大きい」
と表示する
図 流れ図の例
この流れ図は、
二つの値(AとB)を入力し、いずれか大きな値を表示する流れ図です。
流れ図は、このような四角(□)やひし形(◇)の記号、流れ線(→)で、処理の手順を
表します。
21
基本情報技術者に必要な知識とスキル
行うにあたって、さまざまな法律上の制約を受けます。法務では、経営管理の各種技
序
章
(3)法務
序章 基本情報技術者に必要な知識とスキル
(2)プログラミング
プログラミングとは、プログラム言語を使ってプログラムを作成することです。プ
ログラムとは、コンピュータに与える命令の集まりです。プログラム言語とは、コン
ピュータが理解できる言語(命令)の体系です。例えば、アルゴリズムで説明したキー
ボードから二つの値を入力し、大きな値を求めるプログラムを作成すると次のように
なります。情報処理技術者試験で出題されるプログラム言語で作成した例です。
DATA DIVISION.
main(){
01 A
PIC 9(3).
scanf("%d",A);
01 B
PIC 9(3).
scanf("%d",B);
PROCEDURE DIVISION.
if(A>B)
MAIN SECTION
then printf("Aが大きい");
ACCEPT A
else printf("Bが大きい");
ACCEPT B
}
IF A > B
THEN DISPLAY "Aが大きい"
ELSE DISPLAY "Bが大きい"
END-IF.
COBOLの例
C言語の例
図 プログラムの例
午後試験では、COBOL、C、Java、CASLⅡの四つの言語のほかに、表計算が出題
されます。このうち一つを選択します。本書では、プログラム言語の問題対策として、
第11章で表計算について説明します。
22
第 章
1
1
情報の基礎理論
第
章
情報の基礎理論
CONTENTS
1-1 数値の表現
1-2 補数
1-3 浮動小数点数
1-4 データ表現
1-5 論理演算と論理回路
1-6 午後問題の演習
SECTION
第1章 情報の基礎理論
数値の表現
1-1
私たちが日常的に1〜9までの数(10進数)を利用しているのに対し、コンピュータ
の内部では“1”と“0”の2種類の数(2進数)しか扱うことができません。つまり、コ
ンピュータの原理を学ぶためには、この2進数について理解することが重要となりま
す。ここでは、コンピュータが私たちの扱う数値をどのようにして2進数として扱う
のか、その原理の基礎について説明します。
コンピュータの情報表現
コンピュータを構成する電子回路は、情報を表現するために電気が通った状態(実
際には電圧が高い状態)を“1”、電気が通っていない状態(実際には電圧が低い状態)
を“0”として扱っています。この“0”と“1”で表現できる情報のことをビットとよび
ます。コンピュータでは情報を扱う最小単位として、このビットを使用します。また、
8個のビットを一つにまとめた単位としてバイト(1バイト=8ビット)も使用します。
1ビットで表現できる情報量は“0”と“1”の2種類です。2ビットの場合は、“00 01
2
“000 001 010 011 100
10 11”で4(=2 )種類の情報が扱えます。3ビットでは、
3
n
101 110 111”の8(=2 )種類です。つまり、nビットの場合は、2 種類となり、nビッ
n
トの情報量は2 であることが分かります。
情報表現の補助単位
コンピュータは、
非常に膨大な量のデータを非常に短時間で処理します。このため、
コンピュータの仕様や性能を示す場合には、膨大な記憶量を表すための単位や、非常
に短い処理時間を表すための単位を頻繁に使用します。このような数値を表すため補
助単位は、学習を進めていく上で重要な知識なので、ぜひ覚えておきましょう。
主な補助単位を表に示します。
26
1-1 数値の表現
表 補助単位
T
読み方
乗数で表現
テラ
10
6
1,000,000
3
1,000
-3
0.001
10
-6
0.000001
10
-9
0.000000001
10
-12
10
M
メガ
10
m
μ
n
p
10
ミリ
10
マイクロ
ナノ
ピコ
1
情報の基礎理論
1,000,000,000
ギガ
キロ
1,000,000,000,000
9
G
k
実数
12
第 章
記号
0.000000000001
例えば、市販されている音楽用のCD(音楽のアナログデータがディジタル化して
記 録 さ れ て い ま す )は、 約74分 の 演 奏 が 記 録 で き ま す。 そ の デ ー タ 容 量 は、 約
650,000,000バイトです。DVD(動画像と音声がディジタル化され記録されています)
では、一般的なもので約2時間15分の映像と音声を記録できます。その容量は片面で
約4,700,000,000バイトです。以上の記憶容量を補助単位を使用して表現すると、音楽
CDは約650M(メガ)バイト、DVDは約4.7G(ギガ)バイトの容量と表現できます。
また、コンピュータの頭脳といえるCPUは、一般的なパソコン(動作周波数が
1GHzの場合)で1秒間に1,000,000,000回以上の動作を行うことができます。これは、
一つの動作にかかる時間が10億分の1秒、つまり、1ナノ秒と表現できます。
自然数の表現と基数変換
私たちは普段の生活では10進数を用いています。10進数とは、10種類の数字を使い、
0、1、2、…、9の次はけたが上がるという数値表現です。これは私たちの指が10本あっ
たことに由来するものでしょう。例えば、3,456を10進数で表現する意味を考えてみ
ます。
10進数の3,456のことを「3ぜん4ひゃく5じゅう6」と読みます。これは、4けた目の
3
2
1
1,000の位には10 の重み、3けた目の100の位に10 の重み、2けた目の10の位には10 の
0
重み、1けた目の1の位には10 の重み、といったけたの重みがかかっているためです。
このけたの重みは、基数(この場合は10)と、けた位置によって決まります。
3456=3×1000+4×100+5×10+6×1
3
2
1
0
=3×10 +4×10 +5×10 +6×10
27
第1章 情報の基礎理論
一方、コンピュータの記憶素子は、情報をビットで表し、“1”または“0”の並びで
表しています。つまり、コンピュータは数値を2進数で表し、2進数の1けたが1ビッ
トに相当しています。したがって、普段の生活で扱う数値をコンピュータ上で扱うた
めには10進数を2進数で表すための基数変換が必要となります。
基数変換とは、数の基数を異なるものに変換することです。10進数の基数は10です。
これを、コンピュータでよく使われる2進数(基数は2)に変換します。
実際の基数変換
2進数から10進数への変換
それぞれのけたの値に、けたの重みを乗じます。例えば、2進数の“10110110”は次
のように変換します。
(10110110)
2
7
6
5
4
3
2
1
0
=1×2 +0×2 +1×2 +1×2 +0×2 +1×2 +1×2 +0×2
=128+32+16+4+2=(182)
10
10進数から2進数への変換
10進数から2進数への変換では、上位のけたに相当する数値があるか(1)、ないか(0)
を判断して、ある場合はその分は引いていきます。10進数の55を8けたの2進数に変換
してみましょう。
55の中に27=128は
ない
→
0
55の中に26=64は
ない
→
0
55の中に25=32は
ある
→
1
32はすでにあるから減じて残りは 55−32=23
23の中に24=16は
ある
→
1
16はすでにあるから減じて残りは 23−16=7
7の中に23=8は
ない
→
0
7の中に22=4は
ある
→
1
4はすでにあるから減じて残りは
3の中に21=2は
ある
→
2はすでにあるから減じて残りは
1の中に20=1は
ある
図 10進数から2進数への変換(1)
28
→
7−4=3
1
1
3−2=1
(00110111)
2
1-1 数値の表現
したがって、(55)
=(00110111)
です。
10
2
2で割り、その商とあまりを求めます。商を再び2で割り、商とあまりを求めます。こ
りを並べると、変換後の2進数となります。同じように、10進数の55を2進数に変換す
ると次のようになります。
2 ) 55
2 ) 27 …… 1
2 ) 13 …… 1
2)
2)
6 …… 1
3 …… 0
(00110111)
2
1 …… 1
図 10進数から2進数への変換(2)
8け た に な ら な い 場 合、 上 位 の け た は0で 埋 め ま す。 し た が っ て、(55)10=
(00110111)2です。どちらの方法でも自分の分かりやすい方で計算してみてください。
小数や分数の表現
2進数の小数や分数の表現方法も、考え方は自然数の場合と同じです。(0101.101)2
を10進数に変換してみましょう。
2
0
−1
−3
=2 +2 +2 +2
(0101.101)
2
=4+1+1/2+1/8
=(5.625)
10
今度は小数部分の(0.625)
を2進数に変換します。
10
0.625の中に1/2はある → 1
0.5はすでにあるから減じて 0.625−0.5=0.125
0.125の中に1/4はない → 0
(0.101)
2
0.125の中に1/8はある → 1
図 10進小数の2進小数への変換(1)
したがって(0.625)
=(0.101)
です。
10
2
29
1
情報の基礎理論
れを商が2より小さくなるまで繰り返します。そして、最後の商と今まで求めたあま
第 章
この方法のほかに、割り算によって基数変換する方法が知られています。10進数を
第1章 情報の基礎理論
なお、小数を2進数にする方法も、簡便な方法があるのでご紹介しておきましょう。
10進数に2を掛け、積を求めます。整数部分は取り除き、残った小数部分に2を掛け、
同じことを繰り返します。これを、小数部分が0になるまで繰り返します。積の整数
部分が小数の値です。例えば、10進小数の0.625を2進小数に変換すると次のようにな
ります。
0.625 ×2 = 1.25
(0.101)
2
0.25 ×2 = 0.5
0.5
×2 = 1.0
図 10進小数の2進小数への変換(2)
したがって(0.625)
=(0.101)
です。
10
2
2進数と16進数
基数変換の考え方は、何進数であっても理屈は同じです。N進数の場合、Nでけた
上がりするわけです。コンピュータの内部表現は2進数ですが、2進数はけた数が増え
て人間にとって判別しにくくなります。そこで表記をする上では2進数ではなく16進
数をよく利用します。16進数では0,1,2,3,…,9,A,B,…,Fの16種類の数字
を使い、Fの次の数になるとけた上がりします。AやBも文字ではなく数字として扱
われることに注意しましょう。16進数の1けたは2進数の4けたと同じ表現範囲である
ため、2進数と16進数の基数変換はとても容易です。
表 10進数、2進数、16進数の対応
10進数
30
2進数
16進数
10進数
2進数
16進数
1
1
1
9
1001
9
2
10
2
10
1010
A
3
11
3
11
1011
B
4
100
4
12
1100
C
5
101
5
13
1101
D
6
110
6
14
1110
E
7
111
7
15
1111
F
8
1000
8
16
10000
10
1-1 数値の表現
第 章
例題 基数変換(1)
2進の浮動小数点表示で誤差を含まずに表現できる10進数はどれか。
1
(基本情報技術者試験 平成15年度秋期午前 問1)
解説
2進小数で誤差を含まずに表現できる10進数とは、具体的には、
−1
0.5=2
−2
=(0.1)
、0.25=2
2
−3
=(0.01)
、0.125=2
2
=(0.001)
2
−n
といったように、2 で表現できる数値およびその数値の加算によって表現できる数値
です。選択肢の中でこの条件に合致するものは0.5だけです。したがって、正解はエと
なります。
なお、エ以外の数値、例えば、アの0.2を計算によって2進数に変換しようとすると、
0.2×2=0.4
0.4×2=0.8
0.8×2=1.6
0.6×2=1.2
0.2×2=0.4
…
のように途中から同じパターンを無限に繰り返し、
循環小数になります。0.3および0.4
の場合も同様に循環小数となります。
例題 基数変換(2)
10進数の分数
1
32
を16進数の小数で表したものはどれか。
ア 0.01 イ 0.02 ウ 0.05 エ 0.08
(基本情報技術者試験 平成20年度春期午前 問2)
解説
5
−5
1 / 32=(1 / 2)です。つまり2
ですから、
2進数では(0.00001)
となります。
2
2進数と16進数の基数変換は、2進数の4けたと16進数の1けたの値が同じであるこ
31
情報の基礎理論
ア 0.2 イ 0.3 ウ 0.4 エ 0.5
第1章 情報の基礎理論
とを利用します。
0. 0000 1000 … 2進数
↓
↓
0.
0
8
… 16進数
したがって、正解はエとなります。
32
SECTION
1-2 補数
補数
1-2
するために不可欠な補数について説明します。
負の数の表現
コンピュータでは負の数を、どのように表現すればいいでしょうか。一つの方法と
して、符号ビットを設ける、という考え方があります。例えば、4ビットの最上位ビッ
ト(左端のビット)を符号ビットととらえて、
0001 → 1
1001 → −1
とする方法です。単純で分かりやすいのですが、0を表す表現として、0000(プラス0)
と1000(マイナス0)の2通りの書き方ができます。
もう一つの方法として補数を使う方法があります。補数の説明をする前にそもそも
負数とはどういうものか考えてみましょう。例えば、−3は「0から3を減算した数」で
すが、言い換えれば3と加算すると0になる数と考えることができます。4けたの2進数
と加算して(0000)
になる数が−3の2進数表現と考えられます。
で考えると(0011)
2
2
1 0000
−) 0011
1101
最上位ビットを仮定し、そこから1を借りてくる
これを
“0011”
の2の補数という
図 補数の考え方
このように足して0になる数のことを補数(この場合、nの補数)といいます。コン
ピュータ内部では、このような補数を使って負の数を表現しています。実際には、補
数には2種類の考え方があります。(n−1)の補数とnの補数です。2進数ならば、1の
補数と2の補数です。
33
1
情報の基礎理論
ナスの符号をそのままでは使用できません。ここでは、コンピュータが負の数を表現
第 章
コンピュータの内部では“0”と“1”でしか表現できないため、負の値を示すマイ
第1章 情報の基礎理論
1の補数:元 の数と加算すると、全部のビットが1となるような数。つまり元の数を
ビット反転(0を1に、1を0に)した数
2の補数:元の数と加算すると、けた上がりが生じ、元の数のビット部分はすべて0
となるような数
n進数のnの補数の求め方
n進数のnの補数の求め方は次のような手順となります。
① n−1をけた数分だけ並べる。
② ①から元の数を引く。
③ ②に1を加える。
例えば、2けたの10進数“36”の10の補数“64”は、次のように求められます。
① 99
② 99−36=63……9の補数
③ 63+ 1=64……10の補数
2進数の場合は、
より簡単に補数を求めることができます。ビットを反転(1ならば0、
0ならば1)して、1を加算すればよいのです。例えば、4けたの2進数“0011”の2の補数
を求める場合は、次のように行います。
① 0011 → 1100……ビットの反転(1の補数)
② 1100+1=1101……2の補数
求めた補数が正しいかどうかは、元の値と加算したときにオーバフロー(けたあふ
れ)して0になることで確認できます。先程の“0011”に、2の補数“1101”を加えると、
0011+1101=0000(5けた目はオーバフローにより失われる)となり、“0011”の2の補
数“1101”は“0011”の負の値として扱えることが分かります。
それでは、負の数を補数で表現することにはどんなメリットがあるのでしょうか。
実はコンピュータ上では、減算を加算の回路で扱うことができるようになるという利
点があります。ここでは2けたの10進数で考えてみます。
64−12=64+(99−12+1)=64+88=152
オーバーフロー(けたあふれ)により、3けた目が失われるとすれば、10の補数を加
34
1-2 補数
算することにより減算が実現しているわけです。2進数でも同様です。10進数におけ
第 章
る「5−2」を補数を使って、4けたの2進数で計算する例を挙げます。
1
情報の基礎理論
0101−0010=0101+
(1101+0001)
=0101+1110=1 0011 (10進数なら5−2=3)
0010の2の補数
以上より、2の補数を加算することで、減算ができることが分かります。
例題 2の補数
負数を2の補数で表す8ビットの数値がある。この値を10進数で表現すると−100
である。この値を符号なしの数値として解釈すると、10進数で幾らか。
ア 28 イ 100 ウ 156 エ 228
(基本情報技術者試験 平成17年度春期午前 問3)
解説
10進数の−100に対して、負数を2の補数で表す2進数に変換すると、次のように
なります。100を2進数で表してから、2の補数を求めます。
(−100)
→ (10011100)
10
2
“10011100”を符号なしの数値として解釈するので、けたの重みを使って10進数
に変換します。
1
0
0
1
1
1
0
0
27
26
25
24
23
22
21
20
=
=
=
=
=
=
=
=
128
64
32
16
8
4
2
1
128×1+16×1+8×1+4×1=156
したがって、正解はウです。
35
第1章 情報の基礎理論
数値の表現範囲
コンピュータ内部では、限られたけた数(ビット数)の数値を取り扱います。ここ
では、あるビット数でどの範囲の数を表現できるかを考えましょう。
1バイト(8ビット)の大きさで、表現できる値の種類は0000 0000〜1111 1111までの
256種類です。これをそのまま数値として表せば、0〜255までの数が表現できます。
しかし、これでは負の値を表現することができません。負の値を2の補数表示で表し
た場合は、−128〜127までの256種類の値を表現できます。
表示
(2進数)
表示
(16進数)
値
(10進数)
0111 1111
7F
127
0111 1110
7E
126
…
…
…
0000 0001
01
1
0000 0000
00
0
1111 1111
FF
−1
1111 1110
FE
−2
…
…
…
1000 0001
81
−127
1000 0000
80
−128
最大値
最小値
図 8ビット、2の補数表示で表現できる値
また、図を見ても分かりますが正の値は先頭ビットが“0”となり、負の値は先頭ビッ
トが“1”となります。このため、先頭ビットを符号ビットとよぶことがあります。な
お、nビットで表現できる値の範囲は、次のように示すことができます。
・正の数だけの場合
n−1
0〜2
n−1
・負数に2の補数表示を使った場合−2
n−1
〜2
−1
例題 数値の表現範囲(1)
負数を2の補数で表すとき、すべてのビットが1であるnビットの2進数“1111…
11”で表す数値又はその数式はどれか。
n−1
ア −(2
n
−1) イ −1 ウ 0 エ 2 −1
(基本情報技術者試験 平成20年度春期午前 問3)
36
1-2 補数
解説
オーバフローして0になる数です。つまり1を足すと0になる数なので、−1です。正
例題 数値の表現範囲(2)
正の整数の10進表示のけた数Dと2進表示のけた数Bとの関係を表す式のうち、最も
適切なものはどれか。
ア D≒2log10 B
イ D≒10log2 B
ウ D≒Blog2 10 エ D≒Blog10 2
(基本情報技術者試験 平成19年度春期午前 問2)
解説
10進数、および2進数で表現できるけた数に関する問題です。あるけた数のときに
表現できる最大値は、
「基数
数
けた数
けた数
−1」で求めることができますが、ここでは便宜的に「基
」として計算します。したがって、同じ最大値の数値に対して10進数で表現で
きるけた数xと2進数で表現できるけた数yの関係として以下の式が成り立ちます。
x
y
10 =2
x
この式を対数(log)を使って、y=a ⇔ x=loga yのように変換することで、xとy
の関係を求めることができます。両辺に10を底とする対数を取ると、
x
y
log10 10 =log10 2
x=ylog10 2(log10 10は1です)
となります。したがって、正解はエです。
37
1
情報の基礎理論
解はイです。
第 章
すべてのビットが1であるnビットの2進数“1111…11”とは、あと1加算したら、
SECTION
第1章 情報の基礎理論
1-3
浮動小数点数
科学技術計算の分野では、非常に大きな数値や小さな数値を扱う必要があります。
しかし、コンピュータで扱うことのできるビット数は限られています。そこで、限ら
れたビット数(けた数)で、より大きな数値や精密な数値を表現するために浮動小数
点数を用います。ここでは、浮動小数点数の形式やそれにともなう誤差などについて
説明します。
浮動小数点数とは
浮動小数点数の表記では、数値を仮数×基数
指数
で表します。例えば、10進数で3け
たの数値を表現できる場合、表現可能な最大値は999です。これに対して、浮動小数
9
点数を用いて3けたのうち2けたを仮数、1けたを指数とすれば、最大で99×10 の数値
を表現できます。また、指数を負数にすることで、絶対値の小さな数(つまり0に近
い数)も表現することができます。
9
9
9
通常の表現
9
9
仮数
× 10
9
× 基数指数
例:123400000000=1.234×1011
−0.000000009876=−9.876×10−9
図 浮動小数点数の考え方
浮動小数点数の正規化
浮動小数点数の表記を行う場合は、有効けた数を考慮して、正規化を行う必要があ
ります。ここで、有効けた数とは、信頼できる数値のけた数を意味します。例えば、
次に示す数値は同じ値を示していますが、有効けた数が異なっています。
3
ア……0.001×10
1
イ……0.100×10
アの有効なけた数は1けたです。“1”の前のゼロは数値としての意味がないので、
アは“1”を表します。イの有効なけた数は3けたです。つまり、イは“1.00”を表し、
38
1-3 浮動小数点数
小数部分の2けたがゼロであることが保証されます。浮動小数点数の表現として、有
増やします。この作業を正規化と呼びます。具体的には、小数点の位置を動かして、
指数を変更します。
0.100 × 101
正規化
図 浮動小数点数における正規化
浮動小数点数の表現形式
浮動小数点数の表現形式は、コンピュータシステムによって異なります。ここでは、
標準化されているIEEE方式と試験によく出題される方式の二つを紹介します。
(1)IEEE方式
表現形式
1ビット
8ビット
23ビット
S
E
M
1
情報の基礎理論
0.001 × 103
第 章
効けた数が多い方が望ましいので、有効な数字の前のゼロは取り除き、有効けた数を
S :仮数部の符号
(0が正、1が負)
E :指数部
(イクセス表記であり、実際の値は127を引いた値)
M :仮数部
(1.Mの形に正規化されている)
基数:2
S
×2E−127×
(1+M)
式:
(−1)
図 IEEE方式の浮動小数点数の仕様
IEEE方式では、指数部で負の値を表現するためにイクセス表記を使用しています。
この場合のイクセス表記とは、本来8ビットで表現できる値は0〜255であるのに対し、
元の値に127を加算することにより、−127〜128までの表現を可能としています。つ
まり、Eが“00000000”
(0)の場合は−127を、Eが“10000000”
(128)の場合は1を、E
が“11111111”
(255)の場合は128を示しています。
また、仮数部が1.Mの形式をとっているのは、仮数部のけた数を拡大するためです。
正規化して、0.1xxx…となった場合、仮数部の先頭ビットは必ず1となります。1.xxx
…とすることにより、整数部の1を仮数部から省いています。これにより、仮数部で
39
第1章 情報の基礎理論
表現できるけた数が1けた増えています。
例)
10進数の28をIEEE仕様の浮動小数点数で表示します。
仮数部を2進数に
→ (11100)
(28)
10
2
仮数部の正規化
(11100)
×20 → (1.1100)
×24
2
2
指数部をイクセス表記に
4 → 4+127=131 → (10000011)
2
S
E
M
0
10000011
1100 0000 0000 0000 0000 000
図 IEEE仕様の浮動小数点数の表記例
(2)試験によく出題される方式
1ビット
7ビット
24ビット
S
E
M
S :仮数部の符号
(0が正、1が負)
E :指数部
(2の補数表示)
M :仮数
(0.M)
基数:2
S
×2E×
(M)
式:
(−1)
図 試験で出題される浮動小数点数の仕様
試験によく出題される浮動小数点数の仕様では、指数部はイクセス表記ではなく2
の補数表示を使用しています。また正規化の方法は0.1xxx…としています。下の例を
IEEE方式の例と比較してみてください。
例)
10進数の28を上記の仕様の浮動小数点数で表示します。
仮数部を2進数に
→ (11100)
(28)
10
2
仮数部の正規化
(11100)
×20 → (0.11100)
×25
2
2
指数部
5 → 0000101
S
E
M
0
0000101
1110 0000 0000 0000 0000 0000
図 試験で出題される浮動小数点数の表記例
40
1-3 浮動小数点数
数値を図に示す16ビットの浮動小数点形式で表すとき、10進数0.25を正規化した
表現はどれか。ここでの正規化は、仮数部の最上位けたが0にならないように指数部と
4ビット
11ビット
S:仮数部の符号
(0:正,1:負)
S
e
f
e:指数部
(2を基数とし,負数は
2の補数で表現)
小数点の位置
f :仮数部
(2進数 絶対値表示)
ア
0
0001
10000000000
イ
0
1001
10000000000
ウ
0
1111
10000000000
エ
0
0001
10000000000
(基本情報技術者試験 平成18年度春期午前 問4)
解説
まず10進数0.25を2進数に変換します。
(0.25)
=(0.01)
10
2
これを仮数部の最上位けたが0にならないように正規化します。
−1
(0.01)
=(0.1)
×2
2
2
仮数部は後ろに0を補って10000000000となります。指数部は−1であり、これ
を2の補数で表現しますので、指数部は1111です。正の数なので符号部は0です。こ
れを仕様通りに表現すると次のようになります。
S
e
f
0
1111
10000000000
1
情報の基礎理論
仮数部を調節する操作とする。
1ビット
第 章
例題 浮動小数点数
以上より、正解はウです。
41
第1章 情報の基礎理論
誤差
浮動小数点数では有効けた数が限られることから、正確な数字が表現できずに誤差
が発生する場合があります。誤差には、次のような種類があります。
丸め誤差
仮数部分のけた数に限度があることによって、最小けたより小さい部分について四
捨五入や切上げ、切捨てを行うために生じる誤差のことです。
情報落ち
絶対値が大きい値に対し、極端に小さい値を加減算すると、小さいほうの値が計算
結果から欠落することです。数多くの計算を行う場合は、絶対値の小さい値から順に
加算することによって回避することができます。
23
1
例)1.1×2 +1.1×2
23
23
=1.1×2 +0.000000000000000000000011×2
23
=1.1000000000000000000000011×2
ところが、仮数部のけた数には限りがあります。IEEEの単精度なら23けたですから、
2けた分の情報が欠落して、足さなかったことと同じになってしまいます。
けた落ち
絶対値の差が小さい値同士の減算において、演算結果の有効けた数が少なくなる誤
差のことです。10進数の例を挙げます。
5
5
5
0
例)1.23456×10 −1.23455×10 =0.00001×10 =1.00000×10
この結果のうち0.00000部分は意味のない(信頼できない)数字です。有効けた数は6
けたから1けたに減ってしまいます。
打切り誤差
循環小数などの計算を、途中で打ち切ったために発生する誤差のことです。
42
1-3 浮動小数点数
浮動小数点数表示の仮数部が23ビットであるコンピュータで計算した場合、情報落
−16
ア (10.101)
×2
2
16
−15
−(1.001)
×2
2
16
イ (10.101)
×2 −(1.001)
×2
2
2
18
−5
ウ (1.01)
×2 +(1.01)
×2
2
2
20
1
情報の基礎理論
ちが発生する計算式はどれか。ここで( )2 内の数は2進数とする。
第 章
例題 誤差
21
エ (1.001)
×2 +(1.1111)
×2
2
2
(基本情報技術者試験 平成20年度春期午前 問5)
解説
情報落ちは、絶対値が大きい値に対し、極端に小さい値を加減算する場合に生じる
誤差です。絶対値の大小は指数部を見れば分かります。選択肢の中で、指数部に大き
く差があるのはウです。したがって、正解はウです。
2進化10進数
事務処理分野におけるコンピュータ利用では、けた数の大きな数字を表す場合に誤
差が生じては困ります。そこで、金額や数量を表す際に10進数を2進数に基数変換し
ないで、10進数1けたをそのまま2進数に変換して取り扱う方法があります。このよう
な表現を2進化10進数とよびます。
代表的な2進化10進数の表現にBCD(Binary Coded Decimals)コードがあります。
BCDコードは、4けたの2進数で10進数の1けたを表します。ただし、BCDコードは符
号の概念がありません。
符号の概念をもつ2進化10進数に、ゾーン10進数とパック10進数があります。ゾー
ン10進数は、1けたを8ビットで表します。上位4ビットをゾーン部とよびます。数値
は下位4ビットに格納されます。最後の1けたのゾーン部が符号を表します。
パック10進数は、1けたの数字を4ビットで表し、最下位の4ビットで符号を表します。
例えば、10進数の“102”をゾーン10進数、パック10進数で表す場合、次の図のように
なります。なお、図では、正の符号を“1100”としています。この符号はコンピュー
タにより異なります。
43
第1章 情報の基礎理論
ゾーン10進数
パック10進数
1111
0001
1111
0000
1100
0010
ゾーン部
1
ゾーン部
0
符号部
2
0001
0000
0010
1100
1
0
2
符号部
図 ゾーン10進数とパック10進数
44
SECTION
データ表現
1-4
1-4 データ表現
文字の表現
文字をデータとして表現するためには、ビット列と文字を対応付けることで行えま
す。例えば、
“0001”を“A”とするという具合です。この場合“B”には“A”と異な
るビット列を割り当てなければなりません。ここでは“0010”にしましょう。しかし、
この方法ではアルファベットをすべて表現することができません。4ビットで表現で
4
きる情報量は2 =16種類で、アルファベット26文字に異なるビット列を割り当てるこ
とができないからです。アルファベットの大文字、小文字、0から9までの数字、30種
類ほどの記号(!や&など)のそれぞれにビット列を割り当てるためには、最低でも
何ビット必要か、考えてみましょう。
コンピュータは内部に文字コード表を持ち、それを参照することで文字をデータと
して扱います。例えば、アルファベットの“A”をJISコードとよばれる文字コードで
となります。つまり、文字もコンピュータ内部では2進数のコードとし
表すと、(41)
16
て記録されていて、表示するときに文字コード表に照らし合わせて、該当する文字と
して表示するのです。
ここで、どの文字がどのような2進数のコードに対応しているかを決めているのが
文字コード体系です。文字コード体系は、コンピュータ利用の歴史的な背景から複数
存在します。例えば、メインフレームはEBCDIC、UNIX OSではEUC、パソコンは
ASCIIコード(日本ではシフトJISコード)、Unicodeが利用されています。
以下に代表的な文字コード体系を紹介します。
JISコード
JIS(日本工業規格)で規格化された8ビットの文字コード体系です。英数字、カタ
カナ、各種記号など256種類が定められています。そのほか、漢字を表すことができ
る16ビットのJIS漢字コードがあります。
シフトJISコード
JISコードをベースにした文字コード体系です。16ビットの漢字コードのデータと
45
1
情報の基礎理論
コンピュータの内部表現としてどのように扱われているのかを説明します。
第 章
前節では主に数値の表現について学びました。ここでは、文字や画像、音声などが
第1章 情報の基礎理論
英数字、カタカナなどの8ビットコードが混在している場合でも簡単に識別できるよ
うにした文字コードです。JIS漢字コードではSI( シフトイン)、SO(シフトアウト)
という特別コードを使って、16ビットの漢字コードの始まりと終わりを示しています。
しかし、これでは煩雑な上にデータ量が増えてしまうという欠点があります。そこで、
シフトJISコードでは、漢字コードの上位8ビットを8ビットコードと干渉しない領域
に割り当てることで、SIおよびSOなしに8ビットコードと16ビットコードを識別でき
るようにしています。
シフトJISコードは公的な規格ではありませんが、日本国内のパソコンのOSで標準
的に使用されています。
ASCII(American Standard Code for Information Interchange)コード
ANSI(米国規格協会)で規格化された文字コード体系です。基本は7ビットですが、
拡張版では8ビットとなっています。日本語は表示できません。JISコードのベースと
なりました。
EBCDIC(Extended BCD Interchange Code)
IBMが作成したメインフレーム(汎用コンピュータ)向けの文字コード体系です。
本来、日本語は使えませんが、各メーカが独自に拡張して利用可能としています。
EUC(Extended Unix Code)
主にUNIXで利用されている文字コード体系で、拡張UNIXコードともいいます。
日本語の表示も可能です。
Unicode(UCS-2)
世界各国の多くの文字を一つのコード体系で表現するためにISO(国際標準化機構)
で標準化された2バイトの文字コード体系です。現在では拡張が行われており、4バイ
トに拡張して文字を表現するコード体形(UCS-4)も規格されています。
例題 文字コード
コンピュータで使われている文字符号の説明のうち、適切なものはどれか。
ア ASCII符号はアルファベット、数字、特殊文字及び制御文字からなり、漢字に関す
る規定はない。
イ EUCは文字符号の世界標準を作成しようとして考案された16ビット以上の符号体
46
1-4 データ表現
系であり、漢字に関する規定はない。
漢字とASCII符号を混在可能にした符号体系である。
エ シフトJIS符号はUNIXにおける多言語対応の一環として制定され、ISOとして標
(基本情報技術者試験 平成18年度春期午前 問69)
解説
ア 適切な記述です。
イ EUCはExtended UNIX Codeで、AT&T社が定めた、複数バイトの文字をUNIX
等のOSで扱う文字コードの枠組みです。日本語(漢字)についての規定もありま
す。
ウ Unicodeは世界中のすべての文字にそれぞれ異なる符号を割り当てて、16ビット
(実際には拡張されて固定のビット数ではなくなっています)で表現しようとした
符号体系です。後半の記述は、シフトJIS符号に関する記述です。
エ シ フトJIS符号は、JIS符号の位置を移動(シフト)させて、1バイト目にASCII符
号の未使用領域を当てることにより、漢字かどうかを判断することができるよう
にした符号体系です。日本のパソコンでは標準的に使われますが、あくまでも私
的基準であり、公的に標準化された符号体系ではありません。
以上より、正解はアです。
画像の表現
画像は点(画素・ピクセル)に分割して、それぞれの点を色で表現しています。ディ
ジタルカメラやカメラ付き携帯電話でよく話題になる「メガピクセル」という単位は
この画素数を示します。5メガピクセルなら500万の画素で表現できるということです。
画素数が多い方が、より細密できれいな写真や画像を表現できます。最近のディジ
タルカメラや携帯電話は画素数の設定を変更できるものが多くなっています。記録画
素数(出力画素数)の数字が大きいほど、プリントできるサイズは大きくなりますし、
画質は精密になりますが、撮影可能枚数は減ります。それはファイルサイズ(記録容
量)が大きくなるからです。
画像のファイルサイズを決めるもう一つの要素が色数(色相)です。色を表現する
には、文字と同様に、異なる色に異なるビット列を割り当てています。実際にはモニ
47
1
情報の基礎理論
準化されている。
第 章
ウ Unicodeは文字の1バイト目で漢字かどうかが分かるようにする目的で制定され、
第1章 情報の基礎理論
タにカラー画像を表示する場合、通常、RGB(アールジービー)とよばれる、赤(Red)、
緑(Green)、青(Blue)の3色を混色して表現します。R、G、Bにそれぞれ1ビットずつ、
3
つまり一つの画素に3ビットを割り当てれば、2 =8色を表現することができます。一
つの画素に8ビットずつ割り当てた表現は、フルカラー(Full Color)やトゥルーカラー
8
(True Color)とよばれており、赤緑青をそれぞれ256階調(=2 )で混色して16,777,216
色を表現します。人間が認識できる色は各色256階調以下なので、24ビットあれば十
分自然なカラー画像を表現することができます。
赤
(Red)
黄
(Yellow)
マゼンタ
(Magenta)
白
(White)
青
緑
シアン
(Green) (Cyan) (Blue)
図 RGBによる色の表現
例題 画像データの容量
横1,600画素、縦1,200画素で、24ビットのカラー情報をもつ画像が撮影できる
ディジタルカメラがある。このカメラに8Mバイトの記録用メモリを使用すると、何枚
の画像が記録できるか。ここで、画像は圧縮しないものとする。
ア 1 イ 4 ウ 11 エ 15
(基本情報技術者試験 平成18年度秋期午前 問26)
解説
問われているのは「8Mバイトの記録用メモリに、
何枚の画像が記録できるか」なので、
8Mバイトの容量を、画像1枚当たりのデータ容量で割ることで求まります。
画像の大きさ(画素数)は、1,600×1,200(画素)です。24ビットのカラー情報を
持たせるので、データ容量は1画素当たりに24ビットを掛けて、1,600×1,200×
24(ビット)となります。ビットをバイトに換算するために8で割ると、1,600×
48
1-4 データ表現
6
1,200×24÷8(バイト)になります。この画像データ容量で8M(8×10 )バイトの
1600 × 1200 × 24
1
2
=
8 × 10 × 8
6
2
3
1600 × 1200 × 24
=
10
2
2 × 12 × 3
=
100
72
≒ 1.39
計算結果は約1.39なので、記録できる枚数は1枚です。正解はアです。計算問題を
解くコツはできるだけ、分数の形にして計算を最後にすることです。約分できるもの
があるからです。
音声の表現
音声は、波として表現できるアナログ情報です。このアナログ情報をコンピュータ
で扱えるディジタル情報に変換するには、アナログ情報を一定の時間間隔で測定する
(サンプリング)し、数値化することで実現しています。例えばCDの場合は、1秒間に
44,100回のサンプリングを行い、それを16ビット(65,536段階)で数値化しています。
データの値(例えば16ビットで表す)
時間
単位時間当たりのサンプル数
(例えば1秒間に44,100回)
図 アナログ情報(音声)のディジタル化
データ圧縮
音声や静止画、動画などのマルチメディアデータは非常に膨大な容量となります。
例えば、1,000万画素の一般的なディジタルカメラによる写真データは、24ビットで
49
情報の基礎理論
8 × 10 × 8
6
第 章
容量を割ると、次のようになります。
第1章 情報の基礎理論
カラー情報を表現した場合、1枚当たり30Gバイトの容量になります。圧縮しない状
態では、データ量が膨大となり取り扱いが困難となります。そこで、データ圧縮を行
います。
データ圧縮方式のうち、圧縮後も元のデータを完全に復元できるものを可逆符号化
方式、復元できないものを非可逆符号化方式と呼びます。非可逆符号化方式では、元
のデータを再現できない代わりに圧縮率を高めることができます。通常、コンピュー
タのデータは、1ビットでも誤っていると誤った処理結果となってしまうため、非可
逆符号化方式は採用されません。しかし、画像や音声などは、元のデータが完全に再
現されなくとも、人間には十分解釈できます。画質や音質が多少劣化しても、圧縮後
のデータサイズを小さくする方が優先されるため、画像や音声には非可逆符号化方式
がよく利用されます。
例題 データ圧縮
静止画像データの圧縮方式の特徴のうち、適切なものはどれか。
ア 可逆符号化方式で圧縮したファイルのサイズは、非可逆符号化方式よりも小さく
なる。
イ 可逆符号化方式では、圧縮率は伸張後の画像品質に影響しない。
ウ 非可逆符号化方式では、伸張後の画像サイズが元の画像よりも小さくなる。
エ 非可逆符号化方式による圧縮では、圧縮率を変化させることはできない。
(基本情報技術者試験 平成19年度春期午前 問70)
解説
非可逆符号化方式は、圧縮率を高くしてファイルのサイズを小さくできますが、圧
縮率が高いと画質は劣化します。圧縮率は可変なので、ファイルのサイズと画質のバ
ランスを取って圧縮率を決定します。
ア 非可逆符号化方式の方がファイルのサイズは小さくなります。非可逆符号化方式
では、元どおりにデータを復元できない代わりに圧縮率を高めることができるた
めです。
イ 可逆符号化方式では、元の情報を復元できるので、圧縮率は伸張後の画質品質に
影響を与えません。適切です。
ウ 非可逆符号化方式では、圧縮率を高めるために元のデータが一部欠損することに
なるので、画質は劣化します。しかし、伸張後に画像サイズが小さくなることは
50
1-4 データ表現
ありません。
は圧縮率を低めにしますが、圧縮後のファイルのサイズは大きくなります。ファ
イルのサイズを小さくすることを優先する場合は圧縮率を高めにしますが、画質
以上より、正解はイです。
画像フォーマット
画像データを保存するためのフォーマットのうち、情報処理技術者試験で出題され
るものには次のような種類があります。
表 主な静止画フォーマット
特徴
主な用途
圧縮なし
ビットマップデータとして一般的だ
が、圧縮しないためにサイズが大き
くなる。
Windowsの 標 準 的 な
静止画フォーマット
GIF
(Graphics Interchange
Format)
可逆圧縮
静 止 画 の フ ォ ー マ ッ ト と し て イ ン Webサイトなど
ターネットの普及とともに利用が盛
んになった。256色しか表現できない。
JPEG
(Joint Photographic
Experts Group)
非可逆圧縮
高い圧縮率と良好な画像で静止画の
データフォーマットとしては最も一
般的。ISO(国際標準化機構)による
国際標準。
デ ィ ジ タ ル カ メ ラ、
Webサ イ ト な ど 非 常
に広範囲で利用される
特徴
主な用途
BMP(BitMap)
データ圧縮
表 主な動画フォーマット
フォーマット名称
MPEG
(Moving Picture
Experts Group)
データ圧縮
1
情報の基礎理論
は劣化します。
フォーマット名称
第 章
エ 非可逆圧縮方式の多くは、圧縮率は可変式となっています。画質を優先する場合
非可逆圧縮
動画圧縮方式の代表的なフォーマッ
ト。 具 体 的 に はMPEG-2やMPEG-4
といった形式が利用される。ISO(国
際標準化機構)による国際標準。
─
MPEG-2
非可逆圧縮
代表的な動画圧縮方式
DVDやディジタルTV
放送など
MPEG-4
非可逆圧縮
圧縮率が高いので、携帯電話などの
モバイル環境で利用さされる
携帯コンテンツ
TV会議など
51
第1章 情報の基礎理論
音声フォーマット
音声の情報も、画像と同じように圧縮します。音声フォーマットは、電話のように
人間の音声の伝達を目的としたものと、CDのように音楽の情報を保管するものと分
かれます。音声フォーマットは、人間の発生できる範囲の音しか扱いませんが、音楽
フォーマットは人間の可聴範囲の音を対象とします。
表 主な音声フォーマット
目的
フォーマット名称
データ圧縮
PCM(pulse code
modulation)
圧縮なし
音楽用CDに利用されている。
非可逆圧縮
音楽再生用に広く利用されている。 携 帯 音 楽 プ レ イ
MPEG1の音声フォーマット。
ヤーなど
非可逆圧縮
Windowsパ ソ コ ン で の 標 準 フ ォ ー
マット。
Windowsパソコン
圧縮なし
音声を64kビット/秒で伝送できる。
ディジタル電話
非可逆圧縮
音声を8kビット/秒で伝送できる。
携帯電話、IP電話
MP3
(MPEG Audio
音楽用
Layer-3)
WMA
(Windows Media
Audio)
G.711(PCM)
音声用
G.729
(CS-ACELP)
特徴
主な用途
音楽用CD
例題 静止画データの圧縮
静止画データの圧縮符号化に関する国際標準はどれか。
ア BMP イ GIF ウ JPEG エ MPEG
(基本情報技術者試験 平成21年度春期午前 問30)
解説
静止画の圧縮方式に関する問題です。Webサイトの画像や、ディジタルカメラの画
像など、ほとんどの静止画が圧縮されています。
ア BMP(bitmap)は、
静止画データ形式です。圧縮されず、画像をドット(点)に分け、
ドット単位で色のコード情報を持ちます。デファクトスタンダード(事実上の標
準)ですが、国際標準ではありません。
52
1-4 データ表現
イ GIF(Graphics Interchange Format)は、静止画データ形式です。圧縮されて
ウ JPEG(Joint Photographic Experts Group)は、静止画のデータ形式です。圧
縮されています。高圧縮、高画質のため写真の保存に向いています。ISO(国際標
化方式です。DVD、ディジタルビデオカメラ、ディジタルハイビジョン放送など
に利用されています。ISO(国際標準化機構)による国際標準規格です。
以上より、正解はウです。
53
1
情報の基礎理論
準化機構)による国際標準規格です。
エ MPEG(Moving Picture Experts Group)は、静止画ではなく動画の圧縮符号
第 章
います。デファクトスタンダードですが、国際標準ではありません。
SECTION
第1章 情報の基礎理論
1-5
論理演算と論理回路
コンピュータでは、各種の計算や判断の処理を行いますが、その基本となる動作は
論理回路に基づいています。ここではコンピュータの内部の論理回路を理解するため
に必要となる論理演算に関する知識について説明します。
命題
命題とは、客観的にその内容が「真」または「偽」のいずれかと判断できる文や式の
ことをいいます。次の文は命題でしょうか?
①1+1は3である
②リンゴはおいしい
③鯨は哺乳類であり、サメも哺乳類である
①は真偽が客観的に判断できますから、命題です。偽の命題ということになります。
②は真と考える人も偽と考える人もいるでしょう。主観によって異なりますから、命
題ではありません。③は複数の命題を式(論理式)で組み合わせた複合命題です。鯨
は哺乳類ですが、サメは魚類なので、全体として偽の命題となります。
なお、命題の真偽は、真は“True”または“1”、偽は“False”または“0”で表します。
コンピュータが実行する演算(ビット演算)は、突き詰めると2進数の各ビットの値(“1”
と“0”)を命題の真偽ととらえた論理演算となります。
論理演算
論理演算は、算術演算と異なり、真か偽か二つの状態から一定の規則に従って結果
を得る計算方法です。論理演算には、論理積、論理和、排他的論理和、否定がありま
す。ここでは、論理演算の結果を表にまとめた真理値表と、論理演算の結果を集合や
事象を表すベン図を使って、それぞれの論理演算について説明します。
54
1-5 論理演算と論理回路
論理和(OR)
1
ベン図
A
B
A OR B
0
0
0
0
1
1
1
0
1
1
1
1
A
情報の基礎理論
真理値表
第 章
少なくともいずれか一方が真(“1”)であれば、結果が真となる演算です。
B
図 論理和
論理積(AND)
双方が真(
“1”
)の場合のみ、結果が真となる演算です。
真理値表
ベン図
A
B
A AND B
0
0
0
0
1
0
1
0
0
1
1
1
A
B
図 論理積
排他的論理和(Exclusive OR:EORもしくはXOR)
いずれか一方が真(“1”)の場合は結果が真に、双方の値が一致した場合は結果が偽
(“0”)となる演算です。
真理値表
ベン図
A
B
A EOR B
0
0
0
0
1
1
1
0
1
1
1
0
A
B
図 排他的論理和
55
第1章 情報の基礎理論
否定(NOT)
真偽を反転させる演算です。
真理値表
ベン図
A
NOT A
0
1
1
0
A
図 否定
論理演算の公式
論理演算も通常の演算と同じような演算の優先順位があります。優先順位が高い順
にNOT→AND→XOR→ORとなります。また、式の変形も可能です。ここでは、代
表的な論理演算の公式を示します。このうち、特に重要なものはド・モルガンの法則
で、試験問題を解答するために論理式を変形する際によく用いられます。なお、以下
の公式では論理和を+、論理積を・、否定を ̄で表しています。
分配則
A・
(B+C)=(A・B)
+
(A・C)
A+
(B・C)=(A+B)
・
(A+C)
吸収則
A+
(A・B)=A
A・
(A+B)=A
A+
(A・B)=A+B
ド・モルガンの法則
(A・B)=A+B
(A+B)=A・B
56
1-5 論理演算と論理回路
論理式(A + B)
・
(A + C)と等しいものはどれか。ここで、
・は論理積、+は論理和、
XはXの否定を表す。
イ A・B + A・C
ウ (A + B)
・
(A + C) エ (A + B)
・
(A + C)
(基本情報技術者試験 平成21年度春期午前 問3)
解説
一つひとつの式を確認するよりも、論理演算の公式を利用して式を簡略化して、比
較します。ここでは、以下の二つの法則を利用します。
・ド・モルガンの法則
(X ・ Y)= X + Y…(1)論理積全体の否定は、それぞれの否定の論理和
(X + Y)= X ・ Y…(2)論理和全体の否定は、それぞれの否定の論理積
・否定の否定の法則
X = X
…(3)否定の否定は、元に戻る
以上の公式を利用して変換すると、
(A
+ B)・(A + C)=(A + B)+(A + C) ……(1)より
= A ・ B + A ・ C = A ・ B + A ・ C
……(2)、(3)より
以上より、正解はアです。
例題 論理演算
最上位をパリティビットとする8ビット符号において、パリティビット以外の下位7
ビットを得るためのビット演算はどれか。
ア 16進数0FとのANDをとる。
イ 16進数0FとのORをとる。
ウ 16進数7FとのANDをとる。
エ 16進数FFとのXOR(排他的論理和)をとる。
(基本情報技術者試験 平成18年度春期午前 問6)
57
1
情報の基礎理論
ア A・B + A・C 第 章
例題 論理式
第1章 情報の基礎理論
解説
下位7ビットを得るということは、上位の1ビットは0にして、下位の7ビットは元
のままにする、という意味です。強制的に0にするためには「0」とのANDを、元のま
まにするためには「1」とのANDをとればよいでしょう。
X0 X1 X2 X3 X4 X5 X6 X7
AND) 0
0
1
1
1
1
1
1
1 → これを16進数にすると7F
X1 X 2 X 3 X 4 X 5 X 6 X 7
したがって、正解はウです。
論理回路
2進数で情報を扱うコンピュータの内部回路は、基本的な論理演算(AND、OR、
NOT)を行う論理回路から成り立っています。論理回路を図に示す場合は、次のよう
なMIL記号を用います。
AND回路
OR回路
NOT回路
図 MIL記号
半加算回路
コンピュータ内部で加算はどのように行っているのでしょうか。実は論理回路を組
み合わせることによって、加算を行う回路を作成することができます。下位けたから
のけた上がりを考慮しない1けたの2進数の加算を行う回路を半加算回路とよびます。
二つの入力AとBに対し、AとBの加算の結果をSに、けた上がりがあればCに出力し
ます。
A
+) B
CS
58
1-5 論理演算と論理回路
A、Bを入力、C、Sを出力として真理値表を書いてみましょう。これらは前述の
1
半加算回路の論理回路図
入力A
入力B
出力C
出力S
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
A
B
情報の基礎理論
半加算回路の真理値表
第 章
AND、OR、NOTの回路を組み合わせることにより、実現しています。
C
S
図 半加算回路
全加算回路
下位けたからのけた上がりも考慮に入れた加算回路を全加算回路とよびます。
A
A
C
半加算回路
B
S
A
C
半加算回路
Ci
B
S
(下位けたからのけた上がり)
B
C
(けた上がり)
S
(けたの値)
図 全加算回路
図のように半加算回路を組み合わせることで、下位けたからのけた上がりを考慮し
た2進数1けたの加算を行うことができます。最下位けたは半加算回路、それ以外を全
加算回路として必要なけた数分だけ回路を並べれば、任意のビットの足し算を行う論
理回路を構築できます。加算回路があれば、負の数を補数表示することにより減算も
可能になり、加算を繰り返すことで乗算を、減算を繰り返して除算を行うことも可能
になります。
例題 論理回路(1)
図の論理回路と同じ出力が得られる論理回路はどれか。ここで、
(AND)、
は論理和(OR)
、
は論理積
は否定(NOT)を表す。
59
第1章 情報の基礎理論
A
X
B
ア
イ
A
B
X
A
X
B
ウ
エ
A
X
A
X
B
B
(基本情報技術者試験 平成21年度春期午前 問24)
解説
問題の論理回路および解答群の論理回路を真理値表で表すと以下のようになります。
問題の論理回路
A
B
A AND B
NOT B
X=
(A AND B)
OR
(NOT B)
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
ア
A
B
A AND B
X=NOT
(A AND B)
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
A
B
NOT B
X=A OR(NOT B)
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
イ
60
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
A
B
NOT B
X=A OR(NOT B)
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
A
B
A AND B
X=
(A AND B)OR A
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
A
B
NOT B
A AND(NOT B)
X=NOT(A AND(NOT B)
)
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1-5 論理演算と論理回路
イ
第 章
1
情報の基礎理論
ウ
エ
以上より、問題の論理回路と同じ出力が得られるのはイです。
例題 論理回路(2)
図に示す1けたの2進数xとyを加算し、z(和の1けた目)及びc(けた上げ)を出力す
る半加算器において、AとBの素子の組合せとして、適切なものはどれか。
x
y
A
ア
イ
ウ
エ
A
z(和の1けた目)
B
c(けた上げ)
B
排他的論理和
論理積
否定論理積
否定論理和
否定論理和
排他的論理和
論理積
論理和
(基本情報技術者試験 平成21年度春期午前 問25)
61
第1章 情報の基礎理論
解説
半加算器とは、計算結果の桁上がりを持つ加算器です。ただし、下位桁からの桁上
がりの入力はできません。問題の半加算器の真理値表は、次のとおりとなります。
x
y
z
c
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
zはxとyの排他的論理和、cは論理積であることが分かります。したがって、正解は、
アです。
シフト演算
今までに説明した論理演算は、1ビットの値に対する論理演算です。しかし、実際
のコンピュータの内部はビット列に対する論理演算(ビット演算)を行っている場合
がほとんどです。ビット列に対する演算であっても理屈は同じで、1ビットごとに独
立した演算と考えればよいのです。この場合、算術演算と異なり、けた上がりを考慮
する必要がありません。
・)B 00111100
00010100
+)B 00111100
01111101
⋮
⋮
⋮
⋮
⋮
⋮
⋮
⋮
A 01010101
⋮
⋮
⋮
⋮
⋮
⋮
⋮
⋮
A 01010101
図 A・BおよびA+Bのビット演算
なお、ビット列に対する演算には、ビット列を右や左に移動(シフト)することによっ
x
て演算(2 倍のみ)を行うシフト演算があります。シフト演算には、論理シフトと算術
シフトがあります。
62
1-5 論理演算と論理回路
論理シフト
−n
n
入します。右にnビットシフトすると数値を2 倍、左にシフトすると数値を2 倍にす
ることができます。ただし、値がオーバフロー、またはアンダフローを起こさない場
1001 0010 … 146
−1
↑アンダフローされるビット
0100 1001 … 73
↑挿入されたビット
図 論理シフト
算術シフト
論理シフトでは、補数を用いた負の数の演算ができません。算術シフトでは、符号
ビット(一番左のビット)を固定することで、負の数のシフト演算も可能にします。
右シフトした場合は、符号ビットと同じ値を空いたビットに挿入します。左シフトの
場合は、空いたビットに0を挿入します。
1110 0000 … −32
−1
右に1ビットシフト
(×2 )
↑アンダフローされるビット
1111 0000 … −16
↑挿入されたビット
1110 0000 … −32
1
左に1ビットシフト
(×2 )
1
情報の基礎理論
合に限ります。
右に1ビットシフト
(×2 )
第 章
論理シフトは、指定されたビット数だけ全体をシフトし、空いたビットには0を挿
↑オーバフローされるビット
1100 0000 … −64
↑挿入されたビット
図 算術シフト
シフト演算の組み合わせによる計算
n
シフト演算では、2 倍の演算しか行えませんが、シフト演算を組み合わせることに
よって、さまざまな演算を行うことができます。例えば、5倍したい場合は、2ビット
2
左シフト(2 =4倍)したものと元の値を加算すれば5倍となります。
63
第1章 情報の基礎理論
例題 シフト演算
数値を2進数で格納するレジスタがある。このレジスタに正の整数xを設定した後、
“レジスタの値を2ビット左にシフトして、xを加える”操作を行うと、レジスタの値は
xの何倍になるか。ここで、あふれ(オーバフロー)は、発生しないものとする。
ア 3 イ 4 ウ 5 エ 6
(基本情報技術者試験 平成21年度春期午前 問1)
解説
シフト演算に関する問題です。シフト演算とは、シフト(桁ずらし)を行うことで演
算を行うものです。例えば、10数値の数値123を左に1桁シフトすると、1230とな
り、10倍になります。同様に、2進数の数値110(=6)を左に1ビットシフトすると、
1100(=12)となり、2倍になります。つまり、2進数をnビット左にシフトすると、
n
2
元の数の2 倍になります。2ビットシフトして、2 倍(=4倍)したものに、元の値を
足すと、結果として5倍したことになります。したがって、正解はウです。
64
SECTION
1-6 午後問題の演習
午後問題の演習
1-6
第 章
1
情報の基礎理論
画像データの符号化
問 題
画像データの符号化に関する次の記述を読んで、設問1〜3に答えよ。
図1は、8×8画素の白と黒だけで色分けされた2値画像の例である。画素を1
番上の行の左から右へ、次に2番目の行の左から右へと順に1画素を1ビットで、
白を0、黒を1で表すと、図2のように64ビットのビット列で表現することがで
きる。
○
○
○
○
●
●
●
○
○
○
○
○
●
●
●
○
○
○
○
○
●
●
●
○
○
○
○
●
●
●
●
○
○
○
○
●
●
●
●
○
○
○
○
●
●
●
●
○
○
○
○
●
●
●
○
○
図1 2値画像の例
○
○
○
●
●
●
○
○
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
図2 画像のビット列表現
(1)図2のビット列を、同じ値が連続している部分(以下、ランという)ごとに区
切り、各ランをその連続する個数(以下、ランレングスという)で表すこと
によって、少ないビット数でのビット列表現に書き換えることができる。
図2では、左上から数えて0が27個、1が27個、0が10個の順に連続している
ので、27、27、10という情報を使った表現に書き換える。これを、ランレ
ングス符号化という。
(2)1番上の行の左端の画素は白で始まるものとする。ただし、その画素が黒の
場合は、先頭に0個の白があるものとして符号化を行う。
(3)ランレングス符号化の方法は、次のとおりである。
①ラ ンレングスをnとし、nを2進数で表現したときのけた数をmとする。た
だし、常にm≧2となるように、n=0の2進数表現を00、n=1の2進数表現
を01とする。
②nビットのランを図3のビット列に書き換える。
65
第1章 情報の基礎理論
(m−2)ビット
(a)けた数情報
1ビット
mビット
(b)区切り (c)ランレングス情報
(a) nを2進数で表現したときのけた数がmのとき、m−2個の
連続する1とする。m=2のときはこの部分のビット数は0で
あり、次の
(b)
から始まる。
(b)
1個の0とする。
(c)
nの2進数表現とする。
図3 符号化後のビット列表現
(4)図2の例では、最初は0が27個連続しているので、n=27である。27を2進数
で表現すると11011(5けた)となり、m=5である。m−2=3なので、けた数
情報は111である。したがって、この部分の符号化後のビット列表現は
111011011となり、9ビットで表現できる。
(5)表にn、m及び符号化後のビット列を示す。
表 n、m及び符号化後のビット列
符号化後のビット列
       000
1
2
       001
2
2
       010
3
2
       011
4
3
a
…
…
27
5
111011011
…
   1101111
…
4
…
b
…
…
2
…
m
0
…
n
設 問 1
表中の
に入れる正しい答えを、解答群の中から選べ。
aに関する解答群
ア 100 イ 0100 ウ 10100 エ 110100
bに関する解答群
ア 14 イ 15 ウ 16 エ 17
66
1-6 午後問題の演習
設 問 2
第 章
図2の64ビットのビット列をランレングス符号化すると、何ビットで表現で
1
きるか。正しい答えを、解答群の中から選べ。
情報の基礎理論
解答群
ア 22 イ 23 ウ 24 エ 25
設 問 3
ランレングス符号化後のビット列が、次のとおりであったとする。このビッ
ト列を復号した2値画像として正しい答えを、解答群の中から選べ。
000111011111111011111010
解答群
ア ○ ○
●●
●●
●●
●●
○
●
●
●
●
○
●
●
●
●
○
●
●
●
●
○
●
●
●
●
○
●
●
●
○
● イ ●
○
●
○
●
○
●
○
○
●
○
○
○
○
●
○
○
○
○
●
○
○
○
○
●
○
○
○
○
●
○
○
○
○
●
○
○
○
●
○
○
○
○
●
ウ ○ ○
○○
○○
○○
●●
●●
●●
●●
○
○
○
○
●
●
●
●
○
○
○
○
●
●
●
●
○
○
○
○
●
●
●
●
○
○
○
○
●
●
●
●
○
○
○
○
●
●
●
○
エ ●
○
●
○
●
○
●
●
○
●
○
●
○
●
○
○ ●
●
●
●
○
○
○
○
●
●
●
●
○
○
○
○
●
●
●
●
○
○
○
○
●
●
●
●
○
○
○
○
●
●
●
●
○
○
○
○
●
●
●
●
○
○
○
●
●
●
●
○
○
○
○
●
(基本情報技術者試験 平成21年度春期午後 問1)
設問全体の解説
画像データの符号化に関する問題です。ランレングス符号化の方法については問題
文に記述があるので、ランレングス符号化について知らなくても解くことができます。
問題文(3)の「図3 符号化後のビット列表現」について正しく読み取り、問題文(2)
67
第1章 情報の基礎理論
の前提条件を読み落とさないことがポイントです。
設問1の解説
ランレングス符号化後のビット列表現に関する問題です。問題文の記述から「表
n、m及び符号化後のビット列」を完成させます。そこで、問題文(3)、(4)の記述よ
り、ランレングス符号化の方法とn、mの意味を、0が27個連続する場合を例に確認し
ます。
(m−2)
ビット
(a)
けた数情報
1ビット
mビット
ランレングス情報
(b)
区切り (c)
111
0
11011
図 符号化後のビット表現
(a)けた数情報:mを表しています。「(m−2)ビット」なので、nを2進数で表現した
ときのけた数−2個の連続する1で表現します。n=27の場合は、11011となるの
で5けたです。m=5の場合は、111です。このように1が三つ連続している場合は、
m=3+2=5と分かります。m=5が分かれば、区切りを表す0のうしろ5ビットが
nの2進数表現と分かります。
(b)区切り:nとmの境を表しています。1個の0です。
(c)ランレングス情報:nを表しています。n=27の場合は、11011です。
ランレングス符号化の方法が分かったところで、空欄aに該当する符号化後のビッ
なので、ランレングス情報は100、m=3
ト列を求めます。n=4の2進数表現は(100)
2
です。これより、けた数情報は、m−2=3−2=1なので1です。まとめると10100とな
ります。したがって、空欄aはウです。
次に空欄bに該当するnを求めます。符号化ビット列は1101111、m=4なのでランレ
、10進数に変換すると15です。したがって、空欄bはイです。
ングス情報は(1111)
2
68
1-6 午後問題の演習
2
       000
 1
2
       001
 2
2
       010
 3
2
       011
 4
3
a
…
…
27
5
111011011
…
   1101111
…
4
…
b
…
…
 0
…
符号化後のビット列
…
m
1
情報の基礎理論
n
m=2のときはこの部分のビット
数はm-2=0であり,(b)区切り
から始まる。けた数情報はない。
第 章
表 n、m及び符号化後のビット列
常にm≧2となるように,n=0の
2進数表現を00,n=1の2進数表
現を01とする。
(a)
:けた数情報
(b)
:区切り
(c)
:ランレングス情報
図 n,m及び符号化後のビット列
解答
a:ウ b:イ
設問2の解説
画像データをランレングス符号化する問題です。ランレングス符号化後のビット数
を求めます。
0 0 0 0 0 0 0 0
0が27個
(白が27個)
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 1 1 1 1 1
1が27個
(黒が27個)
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
0が10個
(白が10個)
1 1 1 1 1 1 0 0
0 0 0 0 0 0 0 0
図 画像のビット列表現
69
第1章 情報の基礎理論
問題文(1)にも「図2では、左上から数えて0が27個、1が27個、0が10個連続している」
とあるように、図2の画像データは27、27、10という情報を使ってランレングス符号
化できます。
n=27は、「表 n、m及び符号化後のビット列」から11011011となり、9ビットで表
現できることが分かります。
n=10は表にないので符号化後のビット列を求めます。n=10の2進数表現は(1010)
2
なので、ランレングス情報は1010、m=4です。したがって、次に示すようなビット
列となるため、7ビット必要となります。これより、27、27、10をランレングス符号
化すると、9+9+7=25ビットになります。
(m−2)
ビット
(a)
けた数情報
1ビット
mビット
ランレングス情報
(b)
区切り (c)
0
11
1010
解答
エ
設問3の解説
ランレングス符号化後のビット列を画像データに復号する問題です。復号とは、加
工した情報を元に戻すことをいいます。ここでは、ランレングス符号化後のビット列
から2値画像を求めます。
問題文の(2)に、
「1番上の左端の画素は白で始まるものとする。ただし、その画素
が黒の場合は、先頭に0個の白があるものとして符号化を行う」とあります。問題文
にこのような記述がある場合は要注意です。この記述に注意して、ランレングス符号
化後のビット列を検討します。
0から始まるのは
m=2のとき
区切りを示す
0に着目
0 0 0
表よりn=0
①0個の白がある
70
区切りを示す
0に着目
1 1 1 0 1 1 1 1 1
区切りを示す
0に着目
1 1 1 0 1 1 1 1 1
②31個の黒がある
③31個の白がある
0 1 0
表よりn=2
④2個の黒がある
1-6 午後問題の演習
けた数情報とランレングス情報の区切りを示す0に着目してビット列を分割します。
000でn=0を表していることが分かります。先頭は白の個数を表すので、0個の白
選択肢はイとエのどちらかになります。
②二つめの値の区切りを表す0の前には1が三つ連続しているので、m−2=3よりm=
=(31)
なので、31個の黒があります。イとエのうち、こ
5と分かります。
(11111)
2
10
の条件に該当するのはエです。
③既に答えはでていますが、念のため続けて確認します。三つめの値の区切りを表す
0の位置とけた数情報、ランレングス情報は②と同じです。よって、31個の白が続
きます。
④四つめの値の区切りを表す0の前には1がないので、m=2の場合です。表よりn=2
と分かり、最後は2個の黒となります。
以上より、正解はエです。
解答
エ
71
1
情報の基礎理論
ということです。つまり、黒から始まる画像ということが分かります。この時点で
第 章
①先頭の0は、m=2の場合の区切りです。「表 n、m及び符号化後のビット列」より、
Fly UP