gpt4 book ai didi

c - 8051 中外部中断的质数例程

转载 作者:行者123 更新时间:2023-11-30 14:27:09 29 4
gpt4 key购买 nike

我用Keil C51写了一个8051的中断例程,如下:

void intrupt1(void) interrupt 2        // ext interrupt 1 vector
{
char i,j,prime;
P2 = 0;
for(i=2;i<128;i++)
{
prime = 1;
for(j=2;j<i;j++)
{
if(i%j==0)
prime = 0;
}
if(prime == 1)
{
P2 = i;
delay2();
}
}
P2 = 0;
}

当我尝试模拟它时,它显示正确的素数,直到 128,之后它变成一个 8 位计数器,然后返回素数显示,即在 127(最后一个预期的素数)之后,输出是 128,129,130​​....255,素数直到 127,128,129....

我还为外部中断0编写了一个例程,它是一个4位计数器(它工作正常),但我想这不会影响上面的内容。

最佳答案

很可能 char 在编译器中已签名(C 标准允许 char 有符号或无符号),并且范围为 -128 到 127。任何值从此范围小于 128。因此,循环条件始终为 true,因此循环是无限的。

关于c - 8051 中外部中断的质数例程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8147282/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com