请问不同数据类型,但同值的数,自减时间为何不一样呢?
单片机吧
全部回复
仅看楼主
level 1
lxqhj 楼主
如下:
unsigned long i =65500;
while (i--);
---------------------------
unsigned int i = 65500;
while (i--);
请问这个延时为何时间相差很大,虽然容器大小不一样,但放了同样数量的东西,同样一个个放外拿走,理应时间一样啊?但为何不一样呢?求赐教,多谢了!
2021年01月13日 12点01分 1
level 10
当然不一样,你用的是8位单片机,算16位要2周期,算32位要4周期
2021年01月13日 12点01分 2
level 10
假设你用的是32位单片机Long占用8个字节长度(64位),int占用4个字节长度(32位),如果是long--那么单片机就要处理两次,高32位1次,低32位一次,还要处理进位之类的,如果是int--那么就只需要一条汇编语言,就可以直接处理32位数,速度当然不一样。
2021年01月13日 12点01分 3
level 9
编译之后,debug一下,看看对应的汇编就知道了
2021年01月13日 17点01分 4
1