分析しているC#の一部に1行のコードがあります。
`random.next(0xf4240, 0x98967f).ToString();'
コマンドラインが指定された範囲の間の数値を生成し、それを文字列として返していることを知っています。私にとって少し奇妙なのは、「0xf」と「0x#####f」です。
0xfがnybbieを返すことになっていることを調べましたが、生の値がどうなるかを本当に知りたいと思います。どんな助けでも素晴らしいでしょう。
ありがとう。
分析しているC#の一部に1行のコードがあります。
`random.next(0xf4240, 0x98967f).ToString();'
コマンドラインが指定された範囲の間の数値を生成し、それを文字列として返していることを知っています。私にとって少し奇妙なのは、「0xf」と「0x#####f」です。
0xfがnybbieを返すことになっていることを調べましたが、生の値がどうなるかを本当に知りたいと思います。どんな助けでも素晴らしいでしょう。
ありがとう。
プレフィックス0x
は、C#および他の多くの言語で16進値を指定する方法です。私は間違っているかもしれませんが、16進数は整数値しか指定できないと信じています。
あなたの場合、0xf4240は16進数のF4240、または10進数の1.000.000と同じです。0x98967fは、10進数で9.999.999と同じです。
1つは、このコードは明らかに意図的に難読化されたもので、これはbaaaadです。これらの値を16進数で指定する必要はないようです。
コマンドラインは何も生成していません-C#アプリケーション(コマンドラインに出力される)は、1000000から9999999までの疑似乱数を計算しています(16進表現を渡しています)。
C#では、0xは16進整数リテラルを表すプレフィックスとして使用されます。仕様を見る
あなたの場合、f4240
と98967f
は16進法で表される2つの整数です。
更新:@codesparkleが述べているように、それらはそれぞれ1000000と9999999を表します