o在计算机进制中,计算机里的0和1,二进制

计算机的世界是由0和1构成,所有的数据在存储和运算时都要使用二进制数来表示。二进制(binary),以2为基数的记数系统,进位和借位规则是“逢二进一,借一当二”,二进制数据由0和1两个数码来组成,一般采用补码的方式储存。

73b6dbb8f70e6ea714e0fbabbc12a958.png

二进制里的0和1能很好的表示:开关里的“开”和“关”、判断里的“对”和“不对”、电压的“高”和“低”等等,

也就是说,二进制当中的0和1能很好的表示两种截然不同的状态。

而且二进制计数制的四则运算(加减乘除)规则十分简单,并且最后都可以归为加法运算和移位,这使得电子计算机中的运算线路十分简单,速度也能极大程度提高。

而且二进制只用两个符号“0”和“1”,这使得我们可以通过用布尔代数来分析和综合机器中的逻辑线路,来设计电子计算机线路。

a49f60d567c4771ba20a45d65c690590.png

在计算机中,所有的数据在存储和运算时都要使用二进制数来表示,例如像数字、英文中区分大小写的52个字母、和一些常用的符号。

具体使用哪些二进制数字来表示哪个符号,就需要制定自己的一套编码规则,然而为了大家能互相通信并且不造成混乱,就必须使用相同的编码规则,因此ASCII编码就诞生了。

b8062918961c3800c438b734a00a8439.png

大写英文字母“Z”的ASCII编码是90。十进制正整数转换成二进制通常采用除二取余的方式获得,将数字除以2得到余数和商,将商再除以2直到商为1或者0时,然后将依次得到的余数倒过来排序(如果位数不够,高位补零),就得到了二进制数字。

例如:十进制正整数90转换成二进制:90除以2得到商为45余数为0,45除以2得到商为22余数为1,22除以2得到商为11余数为0,11除以2得到商为5余数为1,5除以2得到商为2余数为1,2除以2得到商为1余数为0,1除以2得到余数为1。刚才依次得到的余数排列过来是“0101101”,将它的顺序倒过来得到二进制“1011010”。

569738c37d55ef864bccfe7e77529262.png

由于计算机内部表示数的字节单位是定长的,1个byte长度是8bits(1字节8位),所以计算机通常用8、16、32、64位二进制数。位数不够,高位补零,7位二进制数字“1011010”在前面添加一个0就获得十进制数字90对应的8位二进制数字“01011010”。

但是如果是负整数那么就先需要把与之对应的整数计算出结果,然后对结果取反,之后再加1。例如-95转换成二进制先算出95对应的二进制,上面我们已经算出来了是“01011010”,接下来对它进行取反操作(0变1,1变0)得到“10100101”,最后+1得到结果“10100110”(进位规则逢二进一)。

b1461a9aba9dbc700bd5fea8c3e978de.png

注意:上面算出的是二进制补码,是可以直接存放记录在计算机中。有符号的二进制补码最左边的叫做符号位,0表示正,1表示负。更多关于补码的详情了解:补码_百度百科