0

分析しているC#の一部に1行のコードがあります。

`random.next(0xf4240, 0x98967f).ToString();'

コマンドラインが指定された範囲の間の数値を生成し、それを文字列として返していることを知っています。私にとって少し奇妙なのは、「0xf」と「0x#####f」です。

0xfがnybbieを返すことになっていることを調べましたが、生の値がどうなるかを本当に知りたいと思います。どんな助けでも素晴らしいでしょう。

ありがとう。

4

3 に答える 3

2

プレフィックス0xは、C#および他の多くの言語で16進値を指定する方法です。私は間違っているかもしれませんが、16進数は整数値しか指定できないと信じています。

あなたの場合、0xf4240は16進数のF4240、または10進数の1.000.000と同じです。0x98967fは、10進数で9.999.999と同じです。

1つは、このコードは明らかに意図的に難読化されたもので、これはbaaaadです。これらの値を16進数で指定する必要はないようです。

于 2012-09-19T17:32:11.857 に答える
1

コマンドラインは何も生成していません-C#アプリケーション(コマンドラインに出力される)は、1000000から9999999までの疑似乱数を計算しています(16進表現を渡しています)。

于 2012-09-19T17:32:54.103 に答える
0

C#では、0xは16進整数リテラルを表すプレフィックスとして使用されます。仕様を見る

あなたの場合、f424098967fは16進法で表される2つの整数です。

更新:@codesparkleが述べているように、それらはそれぞれ1000000と9999999を表します

于 2012-09-19T17:38:40.643 に答える