二进制数的一些有用特性

摘自:《编程卓越之道:深入计算机系统》

二进制数有一些很有趣的东西可以学习,而且它们对我们的开发会带来很大的帮助,这些特性是:


1、如果一个二进制(整型)数的第零位的值是一,那么这个数就是奇数;而如果该位是零,那么这个数就是偶数。
2、如果一个二进制数的低端n位都是零,那么这个数可以被2n整除。
3、如果一个二进制数的第n位是一,而其他各位都是零,那么这个数等于2n。
4、如果一个二进制数的第零位到第n位(但不包含位n)都是一,而其他各位都是零,那么这个数等于2n-1。
5、将一个二进制数的所有为左移一位的结果是将该数乘以二。
6、将一个无符号二进制数的所有位右移一位的结果等效于该数除以二(这对有符号数不适用)。余数会被下舍入(round down)。
7、将两个n位二进制数相乘可能会需要2*n位来保存结果。
8、将两个n位数相加或者相减绝对不会需要多于n+1位来保存结果。
9、将一个二进制数的所有位取反等效于将该数取负(改变符号)再将结果减一。
10、将任意给定个数的位表示的最大的无符号二进制数加一的结果永远是零。
11、零递减(减一)的结果永远是某个给定个数的位表示的最大无符号二进制数。
12、n位可以表示2n个不同的组合。
13、数2n-1包含n位,所有位都是一。


收藏之,与众共享,忘日后善用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值