单片机编程 用keil C 写程序 怎么样取变量的绝对值

[复制链接]
查看11 | 回复3 | 2009-7-21 16:56:42 | 显示全部楼层 |阅读模式
给你举个例子吧比如说:变量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...
回复

使用道具 举报

千问 | 2009-7-21 16:56:42 | 显示全部楼层
负数,最高位是1 ;所以要 取反加1;正数,不变;...
回复

使用道具 举报

千问 | 2009-7-21 16:56:42 | 显示全部楼层
math.h里面有个ABS函数...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行