05二进制
二进制概述
计算机底层只能识别二进制。计算机底层只识别二进制是因为计算机内部的电子元件只能识别两种状态,即开和关,或者高电平和低电平。二进制正好可以用两种状态来表示数字和字符,因此成为了计算机最基本的表示方法。在计算机内部,所有的数据都被转化为二进制形式进行处理和存储。虽然计算机可以通过不同的编程语言和程序来处理不同的数据类型和格式,但最终都需要将其转化为二进制形式才能被计算机底层识别和处理。
什么是二进制
十进制:满十进一
二进制:满二进一
十进制转换为二进制
将十进制数除以2,得到商和余数。
将余数记录下来,然后将商作为新的十进制数,重复步骤1,直到商为0为止。 将记录的余数从下往上排列,得到的就是对应的二进制数。
二进制转换为十进制
将二进制数每一位权值找出来,然后每个权值与对应二进制位相乘,最后将它们相加,即可得到十进制数。
什么是权值?
在二进制中,权值指的是每个位所代表的数值大小,即二进制中每个位的位置所代表的数值大小。 例如,在二进制数1101中,最高位的权值为8,次高位的权值为4,第三位的权值为2,最低位的权值为1。
例如,二进制数1101转换为十进制数的计算过程如下: 1×2³ + 1×2² + 0×2¹ + 1×2⁰ = 8 + 4 + 0 + 1 = 13
06八进制与十六进制
什么是八进制
满八进一
十进制转换为八进制
与二进制原理相同
八进制转换为十进制
与二进制原理相同
什么是十六进制
满十六进一
十进制转换为十六进制
与二进制原理相同
十六进制转换为十进制
与二进制原理相同
二进制转换为十六进制
将二进制数从右往左每四位一组,不足四位则在左侧补0,得到若干个四位二进制数。
将每个四位二进制数转换为对应的十六进制数
十六进制转换为二进制
将十六进制中的每个数字转换成4个二进制位
07原码反码补码
byte与bit
byte(字节)是计算机存储和处理数据的基本单位,通常由8个比特(bit)组成。每个比特(bit)是计算机中最小的存储单位,只能存储0或1两个状态。因此,一个字节(byte)可以存储8个比特(bit)的数据。
两者之间的关系是,1 byte = 8 bit,即8个比特(bit)组成一个字节(byte)。
在计算机中,数据通常以字节(byte)为单位进行存储和传输,而比特(bit)则是用来表示数据的最小单位。
1KB = 1024byte
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
原码反码补码
原码反码补码是计算机二进制的三种表示形式。
计算机在底层都是采用二进制补码形式表示的。
二进制位最高位称为符号位,0为正数,1为负数。
正数的原码反码补码
正数的原码反码补码是相同的。
请问127的原码反码补码分别是多少?0111 1111
负数的原码反码补码
负数的原码运算规则:将绝对值转换为二进制后,最高位改为1。
-5的原码:10000101
-5的反码:11111010(原则是:以原码作为参考,符号位不变,其他位取反。)
-5的补码:11111011(原则是:以反码作为参考,符号位不变,加1)
已知负数补码怎么得到原码
虽然计算机底层是采用补码的形式存储的,但最终显示给人类的时候是以原码的形式显示的。所以大家需要具备这个能力!!!
将负数的补码形式除符号位外的所有位按位取反,再加1即可得到原码。
已知补码:10000001
它的原码是:11111111
结果是:-127
通过这个可以得出,对于一个字节来说,最大值127,最小值-128。
计算机底层为什么采用补码
可以简化电路设计:采用补码形式可以将加减法运算转化为相同的操作,从而简化电路设计。
解决了0的正负问题:在原码中,0有两个表示,+0和-0,这样会导致计算结果不唯一,而在补码中,0只有一种表示,即全0,可以避免这个问题。
解决了负数溢出问题:在原码中,负数的表示范围比正数少1,这样在进行减法运算时容易出现负数溢出的情况,而在补码中,负数的表示范围与正数相同,可以避免负数溢出的问题。
方便计算机进行运算:补码形式可以方便计算机进行加减法运算,而且可以使用相同的电路进行运算,从而提高了计算机的运算效率。