
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
もうちょい細かい条件を追ったところ, おそらく
・加算
・右シフト
・代入またはメソッド呼び出し
の 3つの演算があればあとは努力と根性でなんとかなる. 左シフトは加算 (と代入またはメソッド呼び出し) で代用できるのでなくてもいける. 型を固定すれば比較も使わずにすみそう.
ただし「なんとかなる」だけであって
かなりアホなプログラム
になる.
No.5
- 回答日時:
Java の言語仕様を確認してみた.
厳密な意味で「シフト演算の組合わせと除算(/)と加算(+)のみ」っていわれると
比較や代入ができない
のでなんともならん気がする. あと, 「任意の正の整数」で 9^9371 とかもってこられるとさすがにアウトだと思う.
「int (または long) で表すことのできる正の整数で結果もその範囲に収まる」なら, シフト・加算・比較・代入の 4つでいける. むしろ除算が不要.
No.3
- 回答日時:
かなり変態的な操作になるけど, 左シフトと右シフトを駆使すれば除算や減算は不要な気がする>#2.
例えば
x << 28 >>> 31
で x の下から 3ビット目あたりが出てきそう.
No.2
- 回答日時:
#1ですが、先の回答ではシフトと加算については触れているが、除算の用途について言及していないので、それについてちょっと追加。
この問題での除算の用途は、10x7を例にすると、7を4+2+1に分解するのにつかわれます。7 -> 4+2+1は乗数(あるいは被乗数)を2の累乗の数の和に分解しています。
7を2の累乗数である4で割った余りが3となり、その3を2で割った余りが1となる。こういう演算を繰り返すことによって、乗数を2の累乗の和に分解するわけだが、ここで除算が使われる。ただ剰余演算は使えないということだろうから、余りを求めるには除算と減算を使う必要があると思うのだが、減算も使えないとなるとそのあたりちょっと工夫が必要になるでしょう。
No.1
- 回答日時:
課題なので、ヒントだけ。
たとえば、10x7をどう実行するか考える。
10x7 = 10 x (4+2+1) = 10x4 + 10x2 + 10x1
10x4は二進にすると、10の二進数を左に2ビットだけシフトしたもの。
10x2は二進では、10の二進数を左に1ビットだけシフトしたもの。
10x1はなにもしない。
これらを足し合わせれば10x7を求めることができます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jsp~jspにhiddenを使って変数...
-
VBAでダブルコーテーション入り...
-
[VBS]変数を定数に変換する方法...
-
エラーの意味は? Lvalue req...
-
processing エラーで、 "cannot...
-
EXCEL/VBA 変数の値をクリップ...
-
テキストボックスの値を変数に...
-
processing "フラグcheckをfals...
-
vba 最大値 条件分岐
-
PL/Iについて、教えてください。
-
DataTableの値を変数に代入したい
-
VBAでコマンドプロンプトの結果...
-
C言語 exitの使い方
-
excelの、ある数式内の{}の意...
-
Excel-vba 文字列と変数を...
-
VBAの定数の使い方で、計算値を...
-
フォームを開くときに、コンボ...
-
VBAで配列のNULL判定
-
数字の位ごとの値を表示するプ...
-
【for文】アスタリスクと$で図...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでダブルコーテーション入り...
-
エラーの意味は? Lvalue req...
-
jsp~jspにhiddenを使って変数...
-
EXCEL/VBA 変数の値をクリップ...
-
テキストボックスの値を変数に...
-
C言語 アロー演算子について質...
-
整数xxxが大き過ぎますというエ...
-
[VBS]変数を定数に変換する方法...
-
processing エラーで、 "cannot...
-
gridViewの行選択解除
-
Variant型で宣言してるのにEmpt...
-
プログラミングで変数と関数の...
-
C言語
-
DataTableの値を変数に代入したい
-
VB6.0 DataGridでのfirstRowの...
-
DataColumn型の使用方法
-
String型ローカル変数の初期化...
-
VBA 1行で複数の代入を行った...
-
変数宣言と初期値代入の場所に...
-
valueChanged の引数について
おすすめ情報