十进制(整数)转为二进制
除2取余,逆序排列
(除2直到商为0)
如:255(十进制)=11111111(二进制)
255/2=127=====余1
127/2=63======余1
63/2=31=======余1
31/2=15=======余1
15/2=7========余1
7/2=3=========余1
3/2=1=========余1
1/2=0=========余1
十进制(小数)转为二进制
乘2取整,顺序排列
(乘2直到积为整数)
案例1:如 0.625=(0.101)
0.625*2=1.25======取出整数部分1
0.25*2=0.5========取出整数部分0
0.5*2=1==========取出整数部分1
二进制转为十进制
【例题】把二进制1.1101转化为十进制数。
解析:整数部分转化为十进制数是1=1,
小数部分1+1+0+1=0.8125,
则二进制数1.1101对应的十进制数是1.8125。
二进制转十六进制
四位二进制数看作一个整体,那么刚好与十六进制的一个数对应
案例1:(10111101010)= 0101 1110 1010 =5EA
1比特(1位数据)可以表示2个数:0,1
2比特(2位数据)可以表示4个数:00,01,10,11
3比特(3位数据)可以表示8个数:000,001,010,100,011,101,110,111(8进制)
4比特(4位数据)可以表示16个数:.....(16进制正好16个数)
......
8比特(8位数据)可以表示2^8(256)个数:(0~255)
十进制 -> 二进制 -> 十六进制
255 -> 1111 1111 -> ff
所以:
2位十六进制的数,就是8比特,也就是1字节
计算机里存的都是二进制,为了方便看,二进制会被转换为十六进制
内存通常是以字节(8 位二进制,也就是 8 比特)为基本的可寻址单元,
从硬件角度去访问内存数据时,一般是按字节或者多个字节(如字长对应的字节数,常见的 32 位机器字长对应 4 字节,64 位机器字长对应 8 字节等)为单位进行读取操作
所以我的电脑是64位的机器,打开一个二进制的文件,会看到一堆十六进制的数字 2个符号一起,代表1字节,8个连续的2符号,表示8字节