コンテンツにスキップ

022: SSCで2倍する

ヒント / 解答

難易度:

問題

SSCで、入力を1つ読み、その値を2倍して出力するプログラムを書いてください。

関数 double_program() を書き、このプログラムを8ビット命令のリストとして返してください。

制約

  • 021の assemble_linerun を使って確認してください。
  • Read は入力値をメモリへ書き込みます。
  • Shift はAccumulatorを変更します。
  • Write はメモリの値を出力します。
  • データはPython整数として扱います。

>>> run(double_program(), [21])
[42]
>>> run(double_program(), [-3])
[-6]

発展

Shift 2 に変えると、どのような計算になるか確認してください。 正の値を2倍し続けるループを作ると、Python整数版のSSCでは max_steps に達するまで停止しないことも確認してください。