0

かなり面白いかもしれませんが、この答えを見つけるために検索する方法が本当にわかりませんでした。

文字列を結合したいときはいつもこのようなものを使います "string = "something" + "somethingelse" "

しかし、INTでそれを行う方法は? :)

Random r = new Random();
int lvfirst = r.Next(485924948);
int lvsecond = r.Next(39);
int lvdone = lvfirst + lvsecond;
Globals.GlobalInt = lvdone;

私は 1 つの long int を実行しようとしましたが、うまくいかないようで、Long について何か言っているので、この 2 つの乱数を 1 に結合する方法を教えていただけないでしょうか? 最大「48592494839」の乱数が 1 つ必要です

どうもありがとう!

4

4 に答える 4

2

このコードには 2 つの問題があります。

  1. の 2 つの出力を「くっつける」Nextと、ターゲット範囲内のランダムな値が得られません。数学は文字列では機能しません。
  2. 結果を返す代わりに、グローバル変数に格納します。

指定した範囲内の値が必要な場合は、使用します

var result = (long) (r.NextDouble() * 48592494839);

これはまだどのターゲット範囲でも機能しませんが、特定の要件を問題なく満たします。

于 2012-07-07T12:25:40.757 に答える
0

次のようなことができます。

Random r = new Random();
int lvfirst = r.Next(485924948);
int lvsecond = r.Next(39);
long lvdone = Int64.Parse(lvfirst.ToString() + lvsecond.ToString());
Globals.GlobalInt = lvdone;

基本的に、すべてをints文字列に変換して、2 番目の数値を最初の数値の末尾に追加し、それを に戻しintます。

お役に立てれば!

于 2012-07-07T12:22:06.450 に答える
0

int を追加または連結しますか?

連結したい場合は、次を試すことができます。

long lvdone = long.Parse(lvfirst.toString() + lvsecond);

それらを追加してオーバーフローを回避したい場合:

long lvdone = ((long) lvfist) + lvsecond

数値を任意に長くする必要がある場合は、long の代わりに Decimal を使用してみてください

于 2012-07-07T12:24:41.097 に答える
-1

ランダムなものを無視する...これは数字に連結する方法です...

int a = 124;
int b = 101040507;

int digits = 32;
mask = 0x80000000;
while(a & mask == 0)
{
    digits--;
    mask= mask >> 1;
}


long result = b;
result = result << digits;
result = result | b;
于 2012-07-07T12:45:02.577 に答える