Tag: 程序

(C中的内联汇编)有趣的内存分段错误

我的asm汇编代码中有以下部分 “LOOP%=:\n\t” “movapd (%%eax), %%xmm4\n\t” “addl $32, %%eax\n\t” “movsd (%%edx), %%xmm5\n\t” “addl $16, %%edx\n\t” “movapd %%xmm4, %%xmm6\n\t” “subl $1, %%ecx\n\t” “unpcklpd %%xmm5, %%xmm5\n\t” “testl %%ecx, %%ecx\n\t” “mulpd %%xmm5, %%xmm6\n\t” “movsd -8(%%edx), %%xmm7\n\t” “addpd %%xmm6, %%xmm0\n\t” “movapd -16(%%eax), %%xmm6\n\t” “unpcklpd %%xmm7, %%xmm7\n\t” “mulpd %%xmm6, %%xmm5\n\t” “addpd %%xmm5, %%xmm1\n\t” “mulpd %%xmm7, %%xmm4\n\t” “addpd %%xmm4, %%xmm2\n\t” “mulpd %%xmm6, […]

与彩票调度程序的LCG相比,更好的(伪)随机数发生器是什么?

我想设计一个彩票调度器,我需要一个非常好的(伪)随机数发生器,类似于LCG,但我想知道是否还有其他更好的选择? 我特意寻找用C编写的随机生成器。 LCG代码: unsigned long lcg_rand(unsigned long a) { return (a * 279470273UL) % 4294967291UL; } 另外我想知道srand()可以用于此目的还是不准确?

了解啤酒瓶示例中的递归

我自己在C中练习递归,我在网上找到了这个例子。 但有一件事我不明白。 void singSongFor(int numberOfBottles) { if (numberOfBottles == 0) { printf(“There are simply no more bottles of beer on the wall.\n\n”); } else { printf(“%d bottles of beer on the wall. %d bottles of beer.\n”, numberOfBottles, numberOfBottles); int oneFewer = numberOfBottles – 1; printf(“Take one down, pass it around, %d bottles of beer on […]