问题之编程语言_c语言_无符号计算
来源:互联网 发布:最好的日语翻译软件 编辑:程序博客网 时间:2024/06/05 00:59
问题之编程语言_c语言_无符号计算
1.虽然查了资料大概了解了MCU处理减法的方式,使用加法加上补码,但是在处理一段程序时任然遇到了问题;
程序实现周期性处理一段程序:
u16 Systime,starttime;
if((Systime-starttime)==SCANSLAVEDATATIMES)
{
starttime = Systime;//重新载入时间
处理数据部分
}else if((Systime-starttime)>SCANSLAVEDATATIMES){
starttime = Systime;//重新载入时间
}
调试发现程序不会进入else if语句(虽然实际上基本不会进入,但是为了实验,在定时器中周期性将Systime置位0);
经过查证C语言进行减法会强制将u16转换为INT类型,此处将U16换成U32后工作正常,正确语句如下:
u32 Systime,starttime;
if((Systime-starttime)==SCANSLAVEDATATIMES)
{
starttime = Systime;//重新载入时间
}else if((Systime-starttime)>SCANSLAVEDATATIMES){
starttime = Systime;//重新载入时间
}
为证实以上内容,使用下面测试语句,运行与STM32开发板
u8 a,b;
u16 c,d;
u32 e,f;
a=10;
b=0xfe;
c=10;
d=0xfffe;
e=10;
f=0xfffffffe;
printf("\ta-b: %x\r",(a-b));
printf("\tc-d: %x\r",(c-d));
printf("\te-f: %x\r",(e-f));
打印结果:
a-b: ffffff0c
c-d: ffff000c
e-f: c
不管什么平台汇编层面都是有符号数,减法都是转成INT型。
- 问题之编程语言_c语言_无符号计算
- c语言有符号数和无符号类型计算
- 无符号数相减问题 C语言
- c语言之无符号整型
- C语言无符号有符号比较问题总结
- c语言之无符号/有符号数加减法运算
- 黑马程序员_C语言_循环结构
- 黑马程序员_C语言_数组
- 黑马程序员_C语言_字符串
- 黑马程序员_C语言_指针
- 黑马程序员_C语言_数据类型总结
- 黑马程序员_C语言_预处理指令
- 北阳电子_C语言_面试试题
- 数据结构_多项式_C语言源代码
- 黑马程序员_C语言基础_指针
- 10/29/2017_C语言_三道题
- SVD(奇异值分解)算法_计算任意N*M矩阵_C语言代码
- C语言 有/无符号数 需要注意的问题
- 摘自:http://blog.snsgou.com/post-397.html
- servlet过滤器
- 杭电acm--2042
- test4.4
- 百度面试
- 问题之编程语言_c语言_无符号计算
- XPmode切换管理员账户
- poj--迷宫问题
- unity3d获取物体的一点总结
- Linux信号编程实践(三) 信号在内核中的表示(sigaction&sigqueue)
- selenium中各种场景下启动Firefox
- HDU 2177 取(2堆)石子游戏(博弈)
- Deep learning:十九(RBM简单理解)
- 【解决方法】You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE)