计算机元件电路的高电平和低电平状态对应二进制的1和0。二进制逢二进位。
[TOC]
计算机中的基本数据单位是比特(bit),它以8位二进制数位为一个字节。
8bit=1Byte--内存地址Address
8位二进制的1:0000 0001
(不足的位以0补上)
其他存储单位
单位: B-KB-MB-GB-TB-PB-EB-ZB-YB
2的次方:0-10-10--30--40-50--60-70-80
计算机在同一时间内处理的一组二进制数称为一个计算机的“字”,(简称字,word)。存储一个字所需要的字节的长度称为字长(wordsize)。不同架构的计算机的字长不同,例如64位机上字长就是64个二进制位(64bit),即是8byte。
-
加法
0+1=1 1+0=1 0+0=0 1+1=1
(1+1进位成10,见后文) -
乘法
0*0=0 0*1=1 1*0=0 1*1=1
-
减法
0-0=0 1-0=1 1-1=0 0-1=1
(0-1需要借位成10-1=1,见后文) -
除法
0/1=0 1/1=1
如今的计算机中,只有加法器(实现起来更简单)。
-
整数:**除二取余,逆序排列。**该整数整除以2取余数部分,直到商为0为止,每一步的余数为0或1,将每一步所得的余数倒序连接得到二进制整数。
-
小数:**乘二取整,顺序排列。**小数部分乘以2取整数部分,直到小数部分为0为止,每一步的整数为0或1,将每一步所得的整数按顺序连接起得到二进制小数部分。
注意:小数部分末尾的有效位不是5则永远无法乘到小数部分为0,也就构成了循环。
示例:十进制7.25=7+0.25
整数部分 7 ==> 7/2=3余1,3/2=1余1,1/2=0余1 倒序相连得到整数部分111
小数部分 0.25 ==> 0.252=0.5 整数部分0, 0.52=1 整数部分1 顺序相连得到小数部分为01
十进制 7.25 ==> 二进制 111.01
示例:十进制 0.1 ==> 二进0.000110011001100…… 1100的无尽循环
在计算机中,定点数有3种表示法:原码、反码和补码。 0的原码反码补码都是0,正数的原码、反码和补码相同,下部赘述。
二进制负数以原码的补码形式表达。(为简短书写,以下均以4位二进制数做示例)
-
原码:绝对值转换成二进制,最高位补1,最高位称为符号位
-2 --> +2 --> 0010--> 1010
-
反码:除符号位外每位取反,即0变1,1变0。 反码是相互的。
1010 -- 1101
-
补码:反码+1
十进制-2 --> 原码 1010 --> 反码1101 -->加一 1101+0001=1110
计算机中,为了在有限位数二进制数中表示正数和负数(当然还有0),于是将有限位可能表示的二进制数的个数对半分,一半表示正数,一般表示负数。正数和0均以0开头,而负数均以1开头。
4位二进制数包括:
从1111到1000的负数 -2^(4-1)
0000 2^0
从0001到0111的正数 2^(4−1)-1
-
整数:颠倒顺序,将每一位上的数字(0或1)乘以2的相应次方(2^n)得到一个积,将每一位上的乘积相加得到十进制整数。注意,第一位的相应次方n是0,然后依次加一即是1,2……
-
小数:按照顺序,将每一位上的数字(0或1)乘以2的相应次方(2^n)得到一个积,将每一位上的乘积相加得到十进制小数。注意,第一位的相应次方n是-1(因为整数部分是0*2^0),然后以此减一即是-2,-3……
示例:111.01=111+0.01 整数部分 111 ==> 12^0+12^1+12^2=1+2+4=7 小数部分 01 ==> 02^(-1)+1*2^(-2)=0+0.25=0.25 二进制111.01 ==>十进制7+0.25=7.25
按照十进制转二进制方法倒算。 补码1110 --> 减一得到反码 1101 --> 原码0010 --> 十进制 2 -->还原负号 -2