これは宿題の質問であり、私は完全にアイデアがありません(Cプログラミング)。
指示:
/*
* float_neg - Return bit-level equivalent of expression -f for
* floating point argument f.
* Both the argument and result are passed as unsigned int's, but
* they are to be interpreted as the bit-level representations of
* single-precision floating point values.
* When argument is NaN, return argument.
* Legal ops: Any integer/unsigned operations incl. ||, &&. also if, while
* Max ops: 10
* Rating: 2
*/
unsigned float_neg(unsigned uf) {
return 2;
私は単にreturn-ufに行ってみました。と他のことですが、私は何をすべきかわかりません。
ヘルプ?
次の条件が想定されます。
- 2の補数、整数の32ビット表現を使用します。
- 算術的に右シフトを実行します。
- 整数をワードサイズより大きくシフトすると、予期しない動作が発生します。
-編集
解決しました:uf^0x80000000を返します。