数字翻转机

来源:互联网 发布:mac安装qq游戏大厅 编辑:程序博客网 时间:2024/06/11 17:21
#include <stdio.h>
typedef unsigned int uint32;

void main(void)
{
 uint32 b=2;
 uint32 c=1;
 
 printf("%x", ( (volatile)(0xffffffff+(c-b)  ) )+1 );
 
 b=1;
 c=2;
 printf("%x", ( (volatile)(0xffffffff+(c-b)  ) )+1 );
}
 
翻转定义:0xffffffff+1=0 这时就发生了一次翻转
此程序的用途是为了计算,b,c之间的间距。因为是无符号型的,在实际应用中c的值如果未发生翻转,那么c是大于b的。
这段程序可用于无符号的定时器程序的外围函数。
 
未发生翻转时c-b表示:b,c之间的距离
发生翻转时c-b表示:b,c之间还有多大的距离才会发生重叠,即c翻转一次后和b的距离,这个距离表示还有多少距离c才会赶上b
原创粉丝点击