|
本帖最后由 kdabiao 于 2024-4-24 11:19 编辑
刚看到一个问答帖:取随机数问题_精易论坛 (125.la)
这个问题中 取随机数(4294885694,5294885694)
这可能是个很基础的问题 大手略过就好
易语言整数是4字节32位有符号整形 这两个参数都是整数类型
易语言整数能存储的范围呢是:-2^31 ~ 2^31 也就是 -2147483647~2147483647
传递的两个参数明显已经大于这个范围,所以易语言会强制把这个数值转换成范围内的整数类型
4294885694 二进制 11111111111111101100000100111110
11111111111111101100000100111110 第1个符号位是1 表示负数 负数取补码(补码怎么计算自己百科)
补码结果是:1 0000000000000010011111011000010
转换成有符号整数 也就是 -81602
5294885694 二进制 100111011100110011000101100111110 一共33位 抛弃第一位1 剩余32位 00111011100110011000101100111110
00111011100110011000101100111110 第1个符号位是0 表示正数 正数补码就是他自己
补码结果是:0 0111011100110011000101100111110
转换成有符号整数 也就是 999918398
取随机数 (4294885694,5294885694) 实际上是 取随机数 (-81602,999918398)
所以会出现结果是0的情况喽
|
评分
-
查看全部评分
|