您的位置:首页 > 其它

程序是怎么跑起来的?(2)---2进制

2017-12-17 16:43 225 查看
计算机用二进制数表示计算机信息的原因

集成电路有多个引脚,IC的所以引脚,只有直流电压0V和5V两个状态。也就是说IC的一个引脚,只能表示两个状态。

IC的这个特性,决定了计算机的信息数据只能用二进制数来处理。由于1位(一个引脚)只能表示两个状态,所以二进制的计数方式就变成了0、1、10、11、100…这种性质。虽然二进制数并不是专门为IC而设计的,但是和IC的特性非常吻合。计算机处理信息的最小单位—位,就相当于二进制中的一位。位的英文bit是二进制数位(binary digit)的缩写。

二进制数的位数一般是8位、16位、32位…也就是8的倍数,这是因为计算机所处理的信息的基本单位是8位二进制数。8位二进制数被称为一个字节。字节是最基本的信息计量单位。位是最小单位,字节是基本单位。内存和磁盘都适用字节单位来存储和读写数据,适用位单位则无法读写数据。因此字节是信息的基本单位。

用字节单位处理数据时,如果数字小鱼存储数据的字节数(=二进制位的位数),那么高位上就用0填补。例如。100111这个六位二进制数,用8位(1字节)表示时位00100111,用16位(=2字节)表示时为0000000 00100111

程序中,即使是用十进制数和文字等记述信息,在编译后也会转换成二进制数的值,所以程序运行时计算机内部处理的也是用二进制数表示的信息。

对于用二进制数表示的信息,计算机不会区分它是数值、文字。还是某种图片的模式等,而是根据编写程序的各位对计算机发出的指示来进行信息的处理(运算)。例如00100111这样的二进制数,既可以视为纯粹的数据作加法运算,也可以只为“ ’ ”(单引号)文字而现实在显示器上。具体进行何种处理,取决于程序的编写方式。



二进制移位运算,只有在右移时才必须区分逻辑位移和算术位移。左移时,无论是图形模式(逻辑左移)还是相乘运算(算术左移),都只需在空出来的低位补0即可。

符号扩充

以8位二进制数为例,符号扩充就是指在保持值不变的前提下将其转换成16位和32位的二进制数。将0111 1111这个正8位二进制数转换成16位二进制数时,很容易就能得出0000 0000 0111 1111这个正确的结果,但是像1111 1111这样用补数来表示的数值,如何处理?实际上是将其表示成1111 1111 1111 1111就可以了。也就是说,不管是正数还是补数表示的负数,都只需用符号位的值(0或者1)充满高位即可。这就是符号扩充的方法。



二进制运算分为算数运算和逻辑运算。算数运算就是加减乘除 逻辑运算大体分为四种 与、或、非、异或。

相信大家都懂,作者经常忘记异或所以重点说一下。

异或是两个数相同为0 不相同为1

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: