说起二进制,八进制,十进制,十六进制大家最熟悉的就是十进制,为什么呢?一个人有十根手指头,并且平常使用的也是十进制数。
计算机要处理的信息是多种多样的,如数字、文字、符号、图形、音频、视频等,这些信息在人们的眼里是不同的。但对于计算机来说,它们在内存中都是一样的,都是以二进制的形式来表示。
目录
一、数据在内存中的存储
int类型所占的字节为4字节
单位:
1bit
8bit == 1字节
1024字节 == 1K
1024K == 1M
1024M == 1G
1024G == 1T
正数的符号位为0,负数的符号位为1
就拿负数:-1 来举例,因为-1是整形,占四个字节也就是32bit,要把他存放到计算机的内存中 ,存放的是二进制的补码
整数的二进制表示形式:其实有3种
原码:直接根据数值写出的二进制序列就是原码
反码:原码的符号位不变,其他位按按取反就是反码
补码:反码+1,就是补码
原码:1000000000000000000000000001
反码:11111111111111111111111111111110
补码:11111111111111111111111111111111
正数原码补码反码都一样
例如正数 1 在内存中的存储
原码:0000000000000000000000000001
反码:01111111111111111111111111111110
补码:01111111111111111111111111111111
二、进制的转换
我们可以采用连除法的方式来得到相应的进制数
1.二进制
就拿21来举例,将21化为2进制,连续除以2直到商为0
余数从下到上读得二进制——10101,所以在电脑中存放的
原码:00000000000000000000000000010101
因为21是整形,占32bit,位数不够的前面补0;
2.八进制
继续拿21来举例吧
所以21在内存中以八进制存储的原码是00000000000000000000000000000025
3.十六进制
即21在十六进制中存放的是15
4、进制对应表
5、转十进制
某进制计数制中各位数字符号所表示的数值表示该数字符号值乘以一个与数字符号有关的常数,该常数称为 “位权 ”(简称 “权 ”)。
因此想转十进制只需按权展开。
例如2进制的10101
拿上面的八进制25来看
只需对25的每一位按权展开变得到十进制的21。
十六进制的15
相同的办法只需对所处理的数按权展开便可以了。
三、二进制|八进制|十六进制的相互转换
因为2的3次方=8,所以每3位二进制数字可以转换为1位八进制数字。
用二进制10101来试试,不够三位的补0。
2的4次方=16,每4位二进制数字可以转换为1位16进制数字。
用00010101来试试
因此00010101可以写成十六进制的15。