10倍する操作
広告
ライスさん
(No.1)
https://www.ap-siken.com/kakomon/17_haru/q1.html
例えば X を2だとして (二進数だと10)
10倍は20なので(二進数だと10100)
そうすると答えは「ア」だと間違いな気がするのですがいかがでしょうか?
例えば X を2だとして (二進数だと10)
10倍は20なので(二進数だと10100)
そうすると答えは「ア」だと間違いな気がするのですがいかがでしょうか?
2024.07.17 20:12
chihiroさん
★AP ゴールドマイスター
(No.2)
x=2(2進数で10)とします。
xを2ビット左シフト 10→1000
x(=10)を加算 1000+10=1010
更に1ビット左シフト 1010→10100(10進数で20)
間違っていませんね。
xを2ビット左シフト 10→1000
x(=10)を加算 1000+10=1010
更に1ビット左シフト 1010→10100(10進数で20)
間違っていませんね。
2024.07.17 20:40
suttokoさん
(No.3)
この問題は10倍を2*(2^2+1)倍と見て取るというのを意識してみると良いと思います。
ビット左シフトというのは、1ビット動かすごとに数全体を2倍する動作です。
なので、2ビット左シフトして4倍、元の数を足して4倍+1倍で5倍、それをさらに1ビット左シフトで2倍して10倍…といった動きになります。
また、このことより二進数の数をN倍しようとするときは、Nを2の累乗と1の和と積だけであらわせないか考えるとぐっと解きやすくなると思います!
頑張って下さい!
ビット左シフトというのは、1ビット動かすごとに数全体を2倍する動作です。
なので、2ビット左シフトして4倍、元の数を足して4倍+1倍で5倍、それをさらに1ビット左シフトで2倍して10倍…といった動きになります。
また、このことより二進数の数をN倍しようとするときは、Nを2の累乗と1の和と積だけであらわせないか考えるとぐっと解きやすくなると思います!
頑張って下さい!
2024.07.22 12:20