1

これらの二項演算 ( 、、、、、、)のみを使用して s のn数を取得する方法は ありますか?1!~&^|+<<>>n

例、

n ---> output
0 ---> 0000
1 ---> 0001
2 ---> 0011
3 ---> 0111
4 ---> 1111
...
4

2 に答える 2

3

次のように実行できます。

// Since "-" is not on your list while "+" is, I'll add negative 1
// using `~0`; this assumes that your computer uses 2's complement
// representation of negative numbers.
(1 << n) + ~0;

アイデアは、、、 、 など1 << nの 2 の累乗を生成することです。負の値を追加すると が生成されます。これは、パターンが表すものです。11010010002^n-1

于 2013-04-24T10:38:49.553 に答える
0

はい。できるよ

~(~(1<<n) + 1)

例:

n が 2 だとします。

  1. ~(~(1<<2) + 1)

  2. ~(~(100) + 1)

  3. ~(111..1011 + 1)

  4. ~(111..1100)

    = 11

于 2013-04-24T10:56:17.177 に答える