主题:随机函数
maxumi
[专家分:2200] 发布于 2006-09-20 07:49:00
输出是0-15之间的数
FUNCTION rand
DEF SEG = &H40
rand = (PEEK(&H6C) XOR &H55) AND &HF
FOR t = 1 TO 100000: NEXT t
END FUNCTION
此函数纯属虚构......
回复列表 (共8个回复)
沙发
moz [专家分:37620] 发布于 2006-09-20 11:24:00
有这必要吗?
用完段地址后请取消定位
def seg
板凳
moz [专家分:37620] 发布于 2006-09-20 11:24:00
加循环是干嘛的?
3 楼
maxumi [专家分:2200] 发布于 2006-09-20 14:34:00
[quote]有这必要吗?
用完段地址后请取消定位
def seg
[/quote]
这个函数是胡乱搞的, 纯属虚构 - -b
def seg个人认为没有作用, 我没加, 至少我没看到有任何的后果.
PS:如果两次调用的时间差太短, 返回值是一样的, 所以我加了循环.
4 楼
moz [专家分:37620] 发布于 2006-09-20 14:56:00
[quote]def seg个人认为没有作用, 我没加, 至少我没看到有任何的后果.[/quote]
这跟你吃完香蕉没有把香蕉皮扔进垃圾桶是一样道理的,你不一定能看得到后果.
[quote]PS:如果两次调用的时间差太短, 返回值是一样的, 所以我加了循环.[/quote]
舍近求远.
5 楼
maxumi [专家分:2200] 发布于 2006-09-20 15:24:00
[quote]这跟你吃完香蕉没有把香蕉皮扔进垃圾桶是一样道理的,你不一定能看得到后果.[/quote]
QB在对变量, 数组操作的时候会自动DEF SEG的
我承认我是舍近求远, 此函数纯属虚构
6 楼
moz [专家分:37620] 发布于 2006-09-20 18:38:00
[quote]QB在对变量,数组操作的时候会自动DEF SEG的[/quote]
def seg是对内存操作的段地址的指定,
与变量和数组操作无关.
7 楼
maxumi [专家分:2200] 发布于 2006-09-21 07:35:00
[quote][quote]QB在对变量,数组操作的时候会自动DEF SEG的[/quote]
def seg是对内存操作的段地址的指定,
与变量和数组操作无关.[/quote]
QB在操作变量和数组时, 总是先DEF SEG到那个变量/数组的段地址.
8 楼
moz [专家分:37620] 发布于 2006-09-21 12:05:00
[quote]QB在操作变量和数组时,总是先DEF SEG到那个变量/数组的段地址.[/quote]
非也,你可以先简单的看一下汇编,再看一下编译原理(我很遗憾没看过)
对于变量的地址,编译环境有内部的地址识别,
与自定义段地址def seg无关,可以举例看看:
def seg = &HB800
a%=17
b=varptr(a%)
poke b,68
def seg
print a%
def seg = varseg(a%)
poke b,68
def seg
print a%
我来回复