
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
値が0以上の場合に限定です。
例として8ビットの数値で考えてみます。
偶数なのでシフト前のビットは"①②③④⑤⑥⑦0"になっているはずです。(①~⑦は1又は0のどちらかのビット状態とする)
右に1ビット算術シフトすると"0①②③④⑤⑥⑦"になります。
シフト結果のビットを2倍すると、シフト前と同じになることが証明できれば良いので、
シフト結果のビットを2倍します。筆算で行います。
①②③④⑤⑥⑦・・・・シフト結果
X10・・・・2(2進数の10)
---------
0000000・・・・2の0乗
①②③④⑤⑥⑦ ・・・・2の1乗
------------
①②③④⑤⑥⑦0・・・・2倍した結果
よって、シフト前と同じ値になることが証明されました。
No.2
- 回答日時:
うーん、この辺参考になるかしらん。
ソフトウェア基礎技術研修-3:
http://ocw.kyushu-u.ac.jp/menu/faculty/09/4/3.pdf
例えば、nビットで符号つき2進数で表現出来るxを
x = ((-2)^(n-1)) * a_{n-1} + Σ(2^k)*a_k ... k = 0〜n-2
と表現して、偶数なのでx mod 2 = 0が前提となる。
右シフトした数yは
y = ((-2)^(n-2)) * a_{n-2} + Σ(2^k)*a_k ... k = 0〜n-3
なので、yをちょっと弄っていけば1/2*xに落ち着いて、終了、とか言うカンジですかね?
No.1
- 回答日時:
えええええ・・・「証明する」の?
当たり前だと思ってた事を「証明する」ってのは難しいなぁ・・・。
そもそも2進数なんで、桁数が上がれば「2倍」になるわけですよ。自然に。っつー事は桁数が下がれば1/2ですよね。「算術シフト」とかつや~な言い方せんでも「そうならざるを得ない」。
そうならざるを得ない事を「証明しろ」・・・・どないすんねん。
"1" # 1
"10" # 2
"100" # 4
"1000" # 8
"10000" # 16
"100000" # 32
"1000000" # 64
"10000000" # 128
"100000000" # 256
眺めてみれば「でしょ?」
10進数でも桁数上がれば10倍になる・・・っつーか逆に、基本の数「1」の10倍になった時に桁数が上がるのを「10進数」って定義してるわけね(n桁上がれば10^n倍になる)。同じ論法が2進数にも適用される・・・基本の数「1」の2倍になった時に桁数が上がるのを「2進数」としてるわけですよ。従って桁数がn個上がれば基本の数の2^n倍になる。当たり前(逆も考えてみよう)。
その「当たり前の仕組み」を証明する・・・無理なんじゃね(笑)。どうなんだろ。
回答ありがとうございますーー!!
そうなんです。
私もなぜそうなるのかはわかるんですけど、証明問題が出て解けなくて困ってます。。。泣
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 情報処理技術者・Microsoft認定資格 2進数の問題を教えてください。 1 2022/07/27 09:42
- 情報処理技術者・Microsoft認定資格 情報技術の問題についてです。 10進数の−36を以下のような16ビットの浮動小数点表示にするといくつ 3 2022/05/21 19:53
- 計算機科学 ビット計算 2 2023/04/16 14:26
- 数学 以下の問題が分かりません。 8ビット浮動小数点数が、最上位ビットから順に符号1ビット、指数部3ビット 4 2023/07/22 16:06
- 計算機科学 6ビット(符号含む)の二進数 4 2023/04/16 13:22
- 計算機科学 2進数の計算について 2進数の値は全て8ビットで負数は2の補数形式とする。結果が8ビットで表現出来な 3 2023/07/22 14:08
- Chrome(クローム) Webサイトの表示崩れの原因と対策 1 2022/08/01 23:16
- C言語・C++・C# ハミング符号の解読について 1 2023/05/06 00:20
- 工学 疑似乱数生成器 3 2023/01/05 02:06
- 計算機科学 20個の量子ビットからなる量子計算機はおおよそいくつの状態を同時に表現できるか?10x の形で表現し 2 2022/12/27 14:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
0xffffとは?
-
8ビットのデータの、先頭ビット...
-
ビットシフトってどんな時使うの?
-
C言語で128bitの2進数のビット...
-
シーケンス制御についての質問...
-
PS3に搭載されている"Cell"は、...
-
文字参照は10進数と16進数では...
-
一般のソフトで画像を扱う場合...
-
情報科学の飽和演算、ラップア...
-
エクセルVBAのIf,Then 構...
-
符号無し整数xを右にnビット回転
-
C言語やC++言語でビット毎に値...
-
アクセス(2003)のVBAでビット...
-
verilog 符号付加減算(最上位...
-
浮動小数点数の内部表現につい...
-
命令について
-
visualbasic のコード中で 100...
-
スロースキャンコンピュータ 加...
-
16ビットCPUで32ビットの計算方法
-
整数除算の意味とは?
おすすめ情報