找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2699|回复: 0
打印 上一主题 下一主题
收起左侧

负整数补码

[复制链接]
跳转到指定楼层
楼主
ID:105323 发表于 2016-2-23 22:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
计算机中的负数是以其补码形式存在的 补码=原码取反+1
个字节有8位 可以表示的数值范围在 -128到+127 用二进制表示也就是 10000000 -01111111(注意:最高位表示符号)最高位是1的都是负数 最高位是0的都是正数
如-7 原码是 10000111 然后取反(最高位是符号不用取反)得11111000加一 得11111001那么-7的二进制数就是 11111001​
如果知道一个数是负数,要把它的绝对值算出来,方法是:带上符号一起取反,再+1.​

如,ds18b20 中检测到负温度时,要打印出来 “-57”。怎么做??​
  if(temp<0){a=~temp+1;}之后打印个负号,打印个a即可。。。​
因为temp在是负数,则送入变量的是这个负数的二进制数,应当把它的绝对值算出,之后打印个“-”即可。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表