二进制应用

本文深入解析了二进制的基本概念,包括其计数规则、与十进制的转换方法,以及为何计算机选择使用二进制。此外,文章还详细介绍了补码的概念,解释了它是如何利用无符号数来模拟有符号数,从而有效处理负数的,并展示了补码的运算规律和优缺点。同时,文中也涵盖了十六进制及其与二进制的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

一、什么是二进制

逢二进一的计数规则

规律:数字 0,1

进位基权:2

权:8、4、2、1 --基数的幂次。

二、为什么要用二进制

成本最优的解决方案

三、如何用二进制

3.1二进制与十进制的转换

3.1.1、十进制转二进制

方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。

比如7的二进制算法:

 

3.1.2、二进制十进制

方法为:把二进制数按权展开、相加即得十进制数。

 

3.2补码

利用无符号数模拟有符号数,能处理负数,节约成本。

以4位数为例展示补码原理

  • 补码规律一:

    max + 1 = min

    min-1=max

   min - max =1

  • 补码规律二,溢出n周后回到原始位置

    n + (max + 1)* 2 = n

    n + ( min)* 2 = n

    n + (max + 1)* 2 * m = n

  • 补码规律三:

     -n = ~n + 1 (一个数取反加1 等于它的相反数,两头不符合)

补码的优缺点:

优点:可以支持任何有符号数的数学运算;

缺点:不能进行超范围计算,超范围就会溢出。

 

3.3十六进制

逢16进一的数

数字:1、2、3、4、5、6、7、8、9、a、b、c、d、e、f

权:1、16、256

二进制的简写(4位二进制可以与1位16进制相互转化)

0000                                                     0

0001                                                     1

0010                                                     2

0011                                                     3

0100                                                     4

0101                                                     5

0110                                                     6

0111                                                     7

1000                                                     8

1001                                                     9

1010                                                     a

1011                                                     b

1100                                                     c

1101                                                     d

1110                                                     e

1111                                                      f

3.4二进制运算

  1. ~ 取反运算
  2. | 或运算 --有1则1,同0位0
  3. & 与运算 --有0则0,同一为1
  4. ^ 异或运算相同为0,不同为1
  5. >>>逻辑右移位(高位补0,右移几位,高位补几个0,对负数而言无意义)
  6. >>数学右移位(高位是1补1,是0补0)
  7. <<左移位(向左移动右侧补0)

eg:快速计算 n * 8                n << 3

        优化计算 n % 4              n & 0x3

        

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值