お茶の水女子大学 人間文化創成科学研究科 理学専攻 情報科学コース 2017年2月実施 情報基礎 問題1
标签:
Author
祭音Myyura (co-authored with GPT 5.6 SOL)
Description
進数 の桁数を としたとき、 についての の補数 の定義は以下の通りである。
- の時、 の の補数 を求めよ。またこの時の と の和を求めよ。ただし は 進数で であることを表し、 進数では となる。
- の時、 の の補数 を求めよ。
- の補数においては、前問の と は同値であるとみなされる。この事を元に、 の補数同士の和( の補数和)の計算は、桁上がりを一番右の位に足しこめば良いという事を、例を つ示して説明せよ。
- パケット通信で使われるビットエラー検出のチェックサムの計算は、まず送信側でチェックサムフィールドに を入れて ビット単位で区切り、それぞれの の補数和を求め、その値の の補数をチェックサムフィールドに入れてパケットを送るというものである。このパケットを受け取った受信側は、どのような計算をしてビットエラーを検出するか、検出できる理由と共に説明せよ。
题目描述
对 位二进制数 ,其一补数定义为 。
- 对 16 位数 ,求 及 。
- 对 ,求 。
- 在一补数表示中,第 2 问的 与 被视为等值;基于这一事实,用一个例子说明一补数加法为何要把最高位的进位回加到最低位。
- 说明接收方如何验证 16 位一补数校验和,并解释其检测错误的理由。
Kai
(1)
だから
したがって
これは の補数表現における負の零である。
(2)
と は、それぞれ正の零と負の零を表す。
(3)
ビットの例として を計算する。 なので、その の補数は である。通常の加算を行うと
0101 (+5)
+ 1100 (-3)
------
1 0001
となる。最上位からの桁上がり を最下位に足すと
0001 + 0001 = 0010
となり、正しく を得る。 の補数では を零と同値とみなすので、 の桁上がりは
として最下位へ戻す。これをエンドアラウンドキャリーという。
(4)
受信側も、受信したチェックサムを含むパケット全体を ビット語に分け、桁上がりを最下位へ戻しながら の補数和を計算する。
送信時、チェックサムを除く語の和を とすると、チェックサムは である。したがって誤りがなければ
となる。よって受信側の和が なら検査を通過し、それ以外ならビットエラーを検出する。特に ビットだけの誤りは必ず和を変えるので検出できる。ただし、変化が相殺される一部の複数ビット誤りは検出できない。