用二进制表示数据
为何要使用二进制表示计算机信息呢?因为计算机中一个叫IC的电子部件,它有很多引脚,但这些引脚只有直流电0v或5v两个状态,也就是只能表示这两种状态,这一特性也就决定了计算机的信息数据只能用二进制数来处理,但并非说二进制是专门为IC而设计的,只是和IC的特性非常吻合。计算机处理信息的最小单位——位。
为什么二进制数的位数一般是8位、16位、32位等……?这是因为计算机所处理的信息的基本单位是8位二进制数,也就是一个字节,而字节是最基本的信息计量单位。同时值得一提的是内部和磁盘都是使用字节单位存储和读写数据的,若使用位单位则无法读写。这就是字节是信息的基本单位的原因。若字节单位处理数据时,数字小于存储数据的字节数(即小于二进制数的位数),高位就用0填补。 在程序中,使用十进制数、文字、图片等记述信息计算机也是无法区分的,程序运行时计算机内部处理也是转换成二进制数表示信息的。例子如图所示:![](https://img2024.cnblogs.com/blog/3343138/202402/3343138-20240204221509914-169324283.jpg)
既然知道了二进制数在计算机运行程序中有不可或缺的作用,那么到底什么是二进制呢?若想了解二进制就需要先了解位权,位权就是(某进制)的(数的位数-1)次幂。{例如:二进制第一位是2的0次幂(=1),的二位2的1次幂(=2),第三位2的2次幂(=4)......,第八位2的7次幂(=128)。} 而二进制转化为十进制就是各数位的数值和位权相乘后再相加就完成了转换。例如00100111转化为十进制后就是39.,过程如下:![](https://img2024.cnblogs.com/blog/3343138/202402/3343138-20240204221916057-1997175329.jpg)
当我了解了二进制后自然要深入了解它所涉及的运算了,其实四则运算不仅在十进制适用,二进制自然也可以,只是注意逢二仅为即可,所以四则运算并非主要,二进制有自己特有的运算——移位运算,也是了解程序运行原理的关键。移位运算是将二进制数值的各数位进行左(向高位方向)右(向低位方向)移动的运算,而且一次运算中可进行多个数位的移位操作。若要运用移位运算当然要使用它特有的运算符——左移运算符(<<)和右移运算符(>>) ,使用时需记得运算符左侧是被移位的值,右侧是需要移位的位数,例如:
为什么二进制数的位数一般是8位、16位、32位等……?这是因为计算机所处理的信息的基本单位是8位二进制数,也就是一个字节,而字节是最基本的信息计量单位。同时值得一提的是内部和磁盘都是使用字节单位存储和读写数据的,若使用位单位则无法读写。这就是字节是信息的基本单位的原因。若字节单位处理数据时,数字小于存储数据的字节数(即小于二进制数的位数),高位就用0填补。 在程序中,使用十进制数、文字、图片等记述信息计算机也是无法区分的,程序运行时计算机内部处理也是转换成二进制数表示信息的。例子如图所示:
![](https://img2024.cnblogs.com/blog/3343138/202402/3343138-20240204221509914-169324283.jpg)
既然知道了二进制数在计算机运行程序中有不可或缺的作用,那么到底什么是二进制呢?若想了解二进制就需要先了解位权,位权就是(某进制)的(数的位数-1)次幂。{例如:二进制第一位是2的0次幂(=1),的二位2的1次幂(=2),第三位2的2次幂(=4)......,第八位2的7次幂(=128)。} 而二进制转化为十进制就是各数位的数值和位权相乘后再相加就完成了转换。例如00100111转化为十进制后就是39.,过程如下:
![](https://img2024.cnblogs.com/blog/3343138/202402/3343138-20240204221916057-1997175329.jpg)
当我了解了二进制后自然要深入了解它所涉及的运算了,其实四则运算不仅在十进制适用,二进制自然也可以,只是注意逢二仅为即可,所以四则运算并非主要,二进制有自己特有的运算——移位运算,也是了解程序运行原理的关键。移位运算是将二进制数值的各数位进行左(向高位方向)右(向低位方向)移动的运算,而且一次运算中可进行多个数位的移位操作。若要运用移位运算当然要使用它特有的运算符——左移运算符(<<)和右移运算符(>>) ,使用时需记得运算符左侧是被移位的值,右侧是需要移位的位数,例如:
![](https://img2024.cnblogs.com/blog/3343138/202402/3343138-20240204222128654-2038396825.jpg)
若想证明可以通过相加为0来验证,另外只有在右移时候才必须分逻辑右移(二进制表示图形而非数值时,移位后需要在最高位补0)和算术右移(二进制数作为带符号的数值进行运算时,移位要在最高位填充移位前符号位的值)如图所析:
![](https://img2024.cnblogs.com/blog/3343138/202402/3343138-20240204222203671-1741062583.jpg)