单片机编程 用keil C 写程序 怎么样取变量的绝对值
单片机编程用keilC写程序怎么样取变量的绝对值单片机编程用keilC写程序怎么样取变量的绝对值,能指点一下吗?恩,谢谢大家。加载头文件math.h用abs函数解决的。又...
单片机编程 用keil C 写程序 怎么样取变量的绝对值
单片机编程
用keil C 写程序 怎么样取变量的绝对值,能指点一下吗?
恩,谢谢大家。
加载头文件 math.h 用abs函数 解决的。
又学到了一种方法,分给谁呢。。。。投票吧! 展开
单片机编程
用keil C 写程序 怎么样取变量的绝对值,能指点一下吗?
恩,谢谢大家。
加载头文件 math.h 用abs函数 解决的。
又学到了一种方法,分给谁呢。。。。投票吧! 展开
展开全部
给你举个例子吧
比如说:变量a=0x15,那么他的二进制数就是0001 0101,而其相反数就是最高位变为1或者0
然后代码这么写:
temp=a<<1;//表示a的二进制数左移一位,移除的最高位(即符号位)放到了CY(状态标志位)中,而低位补零,即temp=0010 1010,CY=1
if(CY==1)//如果是正数,则最高位变成1
neg_a=a|(0x80+a);//即0001 0101|(1000 0000+0001 0101)=1001 0101
else
neg_a=a-0x80//即1001 0101-1000 0000=0001 0101
比如说:变量a=0x15,那么他的二进制数就是0001 0101,而其相反数就是最高位变为1或者0
然后代码这么写:
temp=a<<1;//表示a的二进制数左移一位,移除的最高位(即符号位)放到了CY(状态标志位)中,而低位补零,即temp=0010 1010,CY=1
if(CY==1)//如果是正数,则最高位变成1
neg_a=a|(0x80+a);//即0001 0101|(1000 0000+0001 0101)=1001 0101
else
neg_a=a-0x80//即1001 0101-1000 0000=0001 0101
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
负数,最高位是1 ; 所以要 取反加1 ;
正数,不变;
正数,不变;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
math.h里面有个ABS函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
abs函数
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询