二进制的转换以及计算

前言

在做算法题的时候,看到当时大一学的二进制负数计算有些遗忘了
先大概记录一下规则,之后再补全


负数的二进制如何计算

  • 三步走:1.其正数的二进制 2.补码 3.加1
  • 举个例子:假如现在要在16位下表示-5
  • step1:5的2进制是 0000 0000 0000 0101
  • step2:补码 1111 1111 1111 1010
  • step3:别忘了还要加1!1111 1111 1111 1011

发现了一个有趣的现象

假如在16位的情况下:
负数的减法:

-5 的二进制是:1111 1111 1111 1011
-6 的二进制是:1111 1111 1111 1010
-7 的二进制是:1111 1111 1111 1001
-8 的二进制是:1111 1111 1111 1000
再看看正数的减法:
5 的二进制是: 0000 0000 0000 0101
4 的二进制是: 0000 0000 0000 0100
3 的二进制是: 0000 0000 0000 0011
2 的二进制是: 0000 0000 0000 0010
不管是正是负,只要是减一加一,对低位的操作是一样的!而且减一操作有个特点,就是一定能把减一前的最低位的1的位置变成0!这个操作能够帮助我们找到二进制数中有多少1存在(无论正负!)
【详情可以参考这题】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值