page0094
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* 符号付き整数について
-(by [[K]], 2013.06.24)
** (0) はじめに
-rev2でbitが出てくるようになり、この辺の挙動への知識があ...
-アプリ開発しかしないときは、この知識はなくても大丈夫です...
** (1) 10進数で練習(足し算、引き算、掛け算)
-ここにゼロもしくはプラスの数しか計算できない、しかも2桁...
--「01」+「23」=「24」
--こんな感じです。
-さてこの計算機で、「97」+「05」を計算したらどうなるでし...
--「97」+「05」=「02」
-おお、なんと2になってしまいました。そうです、本当は102な...
-これを「桁が足りなくて不十分な結果を表示している(=エラ...
-負の数が計算できないおんぼろ計算機でしたが、こうやって工...
--「99」は-1の代わり。
--「87」は-13の代わり。
--「65」は-35の代わり。
----
-さてこの「代用」はどのくらい有効なのでしょうか。試しに、...
--「87」+「99」=「86」(本当は186)
-ほほう、(-13)+(-1)=(-14)なので、この計算は合っています。...
-じゃあ引き算はどうでしょうか。-2から3を引いてみましょう。
--「98」-「03」=「95」
-これは-5なので合っています。
-では、-2から-3を引くのはどうでしょうか。
--「98」-「97」=「01」
-すごいじゃないですか。ばっちりですよ!
-さらに悪乗りして、(-3)*3をやってみましょう。
--「97」*「03」=「91」(本当は291)
-「91」は-9なのでこれもあっています。
-じゃあ、(-4)*(-5)は?
--「96」*「95」=「20」(本当は9120)
-おおー。これもあっていますね!!
-でもうまくいくのはここまでです。割り算はうまくいきません...
----
-引き算で「01」から「07」を引いたらどうなるでしょうか。お...
-この表示の根拠はこうです:
--1から7は引けない。でももしかしたら1は1ではなくて101のつ...
--ボクは2桁しか入力できない計算機だから、ご主人様は101を...
--1から7は引けないけど、101からなら引ける。ご主人様の単な...
-そしてこの「気の利いた対応」のおかげで、1-7=(-6)となり、...
----
-すこしテクニックを紹介しましょう。ある数があったとして、...
--「99」からその数を引く。・・・これは繰り下がりのない引...
--その結果に「01」を足す。
-つまり、「12」の符号を反転したければ、99-12=87にして、+1...
-「56」の符号を反転すると、43+1=「44」というわけです。
-まあそんなことしなくても、100から引けばいいって?まあそ...
----
-この符号付き整数では、最初の桁が「0~4」の場合は正の数、...
** (2) 符号拡張(まだ10進数だけで考えています)
-この2桁のおんぼろ計算機ですが、もしもう一台4桁のおんぼろ...
--「00」=「0000」
--「12」=「0012」
--「34」=「0034」
--「98」=「9998」(どちらも-2を意味する)
--「76」=「9976」(どちらも-24を意味する)
--「54」=「9954」(どちらも-46を意味する)
-このように、補う上位2桁は、「00」だったり「99」になった...
-ちなみに符号なし整数では、かならず「00」を補います。これ...
** (3) 計算の省略(まだ10進数だけで考えています)
-たとえば歴史上の人物の享年(死んだ時の年齢)を調べる計算...
-たとえば織田信長は、1534年に生まれて1582年に死亡していま...
-このとき1582-1534をまじめに計算することもできますが、100...
-この方法は世紀をまたがっても問題なくできます。徳川家康な...
-上位の桁がそろっているからそんなことができるんだ、と思う...
--4桁でやった場合:「0001」-「9999」=「0002」(10000を...
--2桁でやった場合:「01」-「99」=「02」(100を補うルー...
--1桁でやった場合:「1」-「9」=「2」(10を補うルールを...
-つまり、結果の範囲がだいたいわかっていれば、その桁数だけ...
-これは引き算だけではなく、掛け算でも足し算でも同じ性質が...
** (4) ゴミの除去(まだ10進数だけで考えています)
-4桁くらいの数値を10個合計し、25で割った余りがいくつにな...
-しかし計算機の都合で、4桁のまま計算してしまいました(わ...
-この「0043」はどうすれば得られるでしょうか。そうです、上...
-符号付き整数では、ゼロ拡張ではなく符号拡張するべきなので...
** (5) 2進数
-上記の議論はすべて2進数でもそのまま成立します。そしてそ...
* こめんと欄
#comment
終了行:
* 符号付き整数について
-(by [[K]], 2013.06.24)
** (0) はじめに
-rev2でbitが出てくるようになり、この辺の挙動への知識があ...
-アプリ開発しかしないときは、この知識はなくても大丈夫です...
** (1) 10進数で練習(足し算、引き算、掛け算)
-ここにゼロもしくはプラスの数しか計算できない、しかも2桁...
--「01」+「23」=「24」
--こんな感じです。
-さてこの計算機で、「97」+「05」を計算したらどうなるでし...
--「97」+「05」=「02」
-おお、なんと2になってしまいました。そうです、本当は102な...
-これを「桁が足りなくて不十分な結果を表示している(=エラ...
-負の数が計算できないおんぼろ計算機でしたが、こうやって工...
--「99」は-1の代わり。
--「87」は-13の代わり。
--「65」は-35の代わり。
----
-さてこの「代用」はどのくらい有効なのでしょうか。試しに、...
--「87」+「99」=「86」(本当は186)
-ほほう、(-13)+(-1)=(-14)なので、この計算は合っています。...
-じゃあ引き算はどうでしょうか。-2から3を引いてみましょう。
--「98」-「03」=「95」
-これは-5なので合っています。
-では、-2から-3を引くのはどうでしょうか。
--「98」-「97」=「01」
-すごいじゃないですか。ばっちりですよ!
-さらに悪乗りして、(-3)*3をやってみましょう。
--「97」*「03」=「91」(本当は291)
-「91」は-9なのでこれもあっています。
-じゃあ、(-4)*(-5)は?
--「96」*「95」=「20」(本当は9120)
-おおー。これもあっていますね!!
-でもうまくいくのはここまでです。割り算はうまくいきません...
----
-引き算で「01」から「07」を引いたらどうなるでしょうか。お...
-この表示の根拠はこうです:
--1から7は引けない。でももしかしたら1は1ではなくて101のつ...
--ボクは2桁しか入力できない計算機だから、ご主人様は101を...
--1から7は引けないけど、101からなら引ける。ご主人様の単な...
-そしてこの「気の利いた対応」のおかげで、1-7=(-6)となり、...
----
-すこしテクニックを紹介しましょう。ある数があったとして、...
--「99」からその数を引く。・・・これは繰り下がりのない引...
--その結果に「01」を足す。
-つまり、「12」の符号を反転したければ、99-12=87にして、+1...
-「56」の符号を反転すると、43+1=「44」というわけです。
-まあそんなことしなくても、100から引けばいいって?まあそ...
----
-この符号付き整数では、最初の桁が「0~4」の場合は正の数、...
** (2) 符号拡張(まだ10進数だけで考えています)
-この2桁のおんぼろ計算機ですが、もしもう一台4桁のおんぼろ...
--「00」=「0000」
--「12」=「0012」
--「34」=「0034」
--「98」=「9998」(どちらも-2を意味する)
--「76」=「9976」(どちらも-24を意味する)
--「54」=「9954」(どちらも-46を意味する)
-このように、補う上位2桁は、「00」だったり「99」になった...
-ちなみに符号なし整数では、かならず「00」を補います。これ...
** (3) 計算の省略(まだ10進数だけで考えています)
-たとえば歴史上の人物の享年(死んだ時の年齢)を調べる計算...
-たとえば織田信長は、1534年に生まれて1582年に死亡していま...
-このとき1582-1534をまじめに計算することもできますが、100...
-この方法は世紀をまたがっても問題なくできます。徳川家康な...
-上位の桁がそろっているからそんなことができるんだ、と思う...
--4桁でやった場合:「0001」-「9999」=「0002」(10000を...
--2桁でやった場合:「01」-「99」=「02」(100を補うルー...
--1桁でやった場合:「1」-「9」=「2」(10を補うルールを...
-つまり、結果の範囲がだいたいわかっていれば、その桁数だけ...
-これは引き算だけではなく、掛け算でも足し算でも同じ性質が...
** (4) ゴミの除去(まだ10進数だけで考えています)
-4桁くらいの数値を10個合計し、25で割った余りがいくつにな...
-しかし計算機の都合で、4桁のまま計算してしまいました(わ...
-この「0043」はどうすれば得られるでしょうか。そうです、上...
-符号付き整数では、ゼロ拡張ではなく符号拡張するべきなので...
** (5) 2進数
-上記の議論はすべて2進数でもそのまま成立します。そしてそ...
* こめんと欄
#comment
ページ名: