0xffffffffL是什么意思?请高手最好给个详细的解释 谢谢啦

iwemeada 2008-07-25 03:21:31
这个产生随机数的语句里的。

Random ran = new Random((int)(DateTime.Now.Ticks & 0xffffffffL) | (int)(DateTime.Now.Ticks >> 32));
...全文
2588 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
GhostAdai 2008-07-28
  • 打赏
  • 举报
回复
一个可以随便写的种子数。
gomoku 2008-07-28
  • 打赏
  • 举报
回复 1
我是说0xffffffffL这个是什么意思?
L表示长整数(long),全部f...f用二进制表示为:
0xffffffffL = 1111,1111 1111,1111 1111,1111 1111,1111 (2)

为什么用它,而不用别的数啊
用别的数也没大问题,他/她/它无非就想产生一个尽量随机的种子,该数也没有大的意义。
比如(int)(DateTime.Now.Ticks >> 32,要几个月以上连续开机才有可能使该数不是零。

直接用Random ran = new Random();就可以了。
iwemeada 2008-07-28
  • 打赏
  • 举报
回复
大家误会了 我是说0xffffffffL这个是什么意思?为什么用它,而不用别的数啊?

sxmonsy 2008-07-25
  • 打赏
  • 举报
回复
Random ran = new Random();
暗石绿 2008-07-25
  • 打赏
  • 举报
回复
(Random的构造函数已经用上当前的时间来做随机种子了):
Random ran = new Random();


我记得不行吧?
我记得在 .net 1.1里,我试过这样的写法,
在我循环很多次时,会出现一大串同样的随机数:

...
1234
1234
1234
1234
1234
1234
...
gomoku 2008-07-25
  • 打赏
  • 举报
回复
DateTime.Now.Ticks & 0xffffffffL) ¦ (int)(DateTime.Now.Ticks >> 32)
这句想用当前的时间拿到一个整数来做随机种子。

其实不用那么麻烦,直接这样写就可以了(Random的构造函数已经用上当前的时间来做随机种子了):
Random ran = new Random();
greystar 2008-07-25
  • 打赏
  • 举报
回复
>>位移 & | 位操作 0xffffffffL十六进制

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧