二进制详解

二进制详解

目录​

  1. 二进制和进制转换
  2. 原码、反码、补码

1. 二进制和进制转换

2进制8进制10进制16进制数值的不同表示形式

比如:数值15的各种进制的表示形式:​

  1. 15的 2进制:1111
  2. 15的 8进制:017
  3. 15的 10进制:15
  4. 15的 16进制:0xF

1.1 进制介绍

10进制

  • 10进制中满10进1​
  • 10进制的数字每一位都是0~9的数字组成​

2进制

  • 2进制中满2进1​
  • 2进制的数字每一位都是0~1的数字组成​

8进制

  • 8进制中满8进1
  • 8进制的数字每一位都是0~7的数字组成
  • 8进制前需要加上0

16进制

  • 16进制中满16进1
  • 10进制的数字每一位都是09,af(A~F)的数字组成
  • 16进制前需要加上0x

1.2 2进制转10进制

在10进制中,123表示的值是一百二十三。

10进制的每一位是权重的,10进制的数字从右向左是个位、十位、百位…,分别每一位的权重是100,101,10^2。

如下图:

在这里插入图片描述

2进制和10进制是类似的,只不过2进制的每一位的权重,从右向左是:20,21,2^2……

如果是2进制的1101,该怎么理解呢?​

在这里插入图片描述

1.3 10进制转2进制

10进制除以2所得余数倒序相加。

在这里插入图片描述

1.4 2进制转8进制

8进制的数字每一位是07的,**07的数字,各自写成2进制,最多有3个2进制位**,比如7的二进制是111,所以在2进制转8进制数的时候,从2进制序列中右边第一位开始,向左每3个2进制位会换算一个8进制位,剩余不够3个2进制位的直接换算
在这里插入图片描述

如:2进制的01101011,换成8进制:0153

8进制表示的时候前面加0。

1.5 2进制转16进制

16进制的数字每一位是0~9、a ~f 的,0~9、a ~f的数字,各自写成2进制,最多有4个2进制位,比如 f 的二进制是1111,所以在2进制转16进制数的时候,从2进制序列中右边第一位开始,向左每4个2进制位会换算一个16进制位,剩余不够4个二进制位的直接换算。

如:2进制的01101011,换成16进制:0x6b。

16进制表示的时候前面加0x。
在这里插入图片描述

2. 原码、反码、补码

整数的2进制表示方法有三种,即原码、反码和补码

有符号整数的三种表示方法均有符号位和数值位两部分:2进制序列中,最高位的1位是被当做符号位,剩余的都是数值位。

符号位都是用0表示“正”,用1表示“负”

正整数的原、反、补码都相同。

负整数的三种表示方法各不相同。

无符号整数只有数值位

  • 原码:直接将数值按照正负数的形式翻译成二进制得到的就是原码。
  • 反码:将原码的符号位不变其他位依次按位取反就可以得到反码。
  • 补码:反码+1就得到补码。

反码得到原码也是可以使用:取反,+1的操作。

对于整形来说:数据存放内存中其实存放的是补码

在计算机系统中,数值一律用补码来表示和存储

原因在于:

  • 使用补码,可以将符号位和数值域统⼀处理

  • 加法和减法也可以统⼀处理(CPU只有加法器)

  • 补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值