什么是二进制数 为什么用二进制数表示计算机信息?

想必大家都知道计算机内部是由 IC ①这种电子部件构成的。CPU(微处理器)和内存也是IC的一种。IC有几种不同的形状,有的像一条黑色蜈蚣,在其两侧有数个乃至数百个引脚;有的则像插花用的针盘,引脚在IC内部并排排列着。IC的所有引脚,只有直流电压0V或5V②两个状态。也就是说,IC的一个引脚,只能表示两个状态。

① IC是集成电路(Integrated Circuit)的简称,有模拟IC和数字IC两种。本章介绍的是数字IC。关于内存IC,我们会在第4章详细说明。② 大部分IC的电源电压都是+5V。不过,为了控制电量的消耗,有的IC也会使用+5V以下的电压。如果IC使用的电源电压为+5V,那么引脚状态就不只是0V和+5V,还存在不接收电流信号的高阻抗(high impedance)状态。但在本书中,我们暂时不考虑高阻抗状态。

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

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

① 字节是由bite(咬)一词而衍生出来的词语。8位(8 bit)二进制数,就类似于“咬下的一口”,因此被视为信息的基本单位。

用字节单位处理数据时,如果数字小于存储数据的字节数(= 二进制数的位数),那么高位上就用0填补。例如,100111这个6位二进制数,用8位(= 1字节)表示时为00100111,用16位(= 2字节)表示时为0000000000100111。奔腾等32位微处理器,具有32个引脚以用于信息的输入和输出。也就是说,奔腾一次可以处理32位(32位= 4字节)的二进制数信息。

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

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

什么是二进制数?为了更清晰地说明二进制数的机制,首先让我们把00100111这个二进制数值转换成十进制数值来看一下。二进制数的值转换成十进制数的值,只需将二进制数的各数位的值和位权相乘,然后将相乘的结果相加即可(图2-3)。

假使有人问你:“为什么使用这样的转换方法呢?你能解释一下吗?”你这么回答是不行的:“不知道原因,只是把方法背下来了。”我们了解了二进制数的机制后,再看二进制数转换成十进制数的方法,就没有死记硬背的必要了。下面我们会对照着十进制数来说明二进制数的机制,这部分是重点,请大家一定要掌握。

首先,让我们从位权的含义说起。例如,十进制数39的各个数位的数值,并不只是简单的3和9,这点大家应该都知道。3表示的是3×10 = 30,9表示的是9×1 = 9。这里和各个数位的数值相乘的10和1,就是 位权。数字的位数不同,位权也不同。第1位(最右边的一位)是10的0次幂①(= 1),第2位是10的1次幂(= 10),第3位是10的2次幂(= 100),依此类推。这部分相信大家都能够理解。那么,我们就继续讲一下二进制数。

位权的思考方式也同样适用于二进制数。即第1位是2的0次幂(= 1),第2位是2的1次幂(= 2),第3位是2的2次幂(= 4),……,第8位是2的7次幂(= 128)。“○○的××次幂”表示位权,其中,十进制数的情况下○○部分为10,二进制数的情况下则为2。这个称为 基数 ②。十进制数是以10为基数的计数方法,二进制数则是以2为基数的计数方法。“○○的××次幂”中的××,在任何进制数中都是“数的位数-1”。即第1位是1- 1 = 0次幂,第2位是2- 1 = 1次幂,第3位是3- 1 = 2次幂。

① 所有数的0次幂都是1。② 数值的表现方法,进位计数制中各数位上可能有的数值的个数。十进制数的基数是10,二进制数的基数是2。

接下来,让我们来解释一下各数位的数值和位权相乘后“相加”这个处理的原因。其实大家所说的数值,表示的就是构成数值的各数位的数值和位权相乘后再相加的结果。例如39这个十进制数,表示的就是30+9,即各数位的数值和位权相乘后再相加的数值。

这种思考方式在二进制数中也是通用的。二进制数00100111用十进制数表示的话是39,因为(0×128)+(0×64)+(1×32)+(0×16)+(0×8)+(1×4)+(1×2)+(1×1) = 39。大家明白了吗?

本文摘自《程序是怎样跑起来的》

时间: 2024-10-21 20:21:19

什么是二进制数 为什么用二进制数表示计算机信息?的相关文章

交替位二进制数

给定一个正整数,检查他是否为交替位二进制数:换句话说,就是他的二进制数相邻的两个位数永不相等. 示例 1: 输入: 5输出: True解释:5的二进制数是: 101示例 2: 输入: 7输出: False解释:7的二进制数是: 111示例 3: 输入: 11输出: False解释:11的二进制数是: 1011 示例 4: 输入: 10输出: True解释:10的二进制数是: 1010 参考代码: class Solution: def hasAlternatingBits(self, n): l

08-JAVA算术运算符和逻辑运算符

Java的运算符,分为四类: 算数运算符.关系运算符.逻辑运算符.位运算符. 算数运算符(9):+  -  *  /  %  ++  -- 关系运算符(6):==  !=  >  >=  <  <= 逻辑运算符(6):&&  ||  !  ^  &  | 位运算符(7):&  |  ~  ^  >>  <<  >>> ----------------------------------------------

【bzoj2844】 albus就是要第一个出场

http://www.lydsy.com/JudgeOnline/problem.php?id=2844 (题目链接) 题意 给出${n}$个数,它们可以异或出${n^2}$个数,将这些数从小到大排列起来,问${Q}$最早出现的位置. Solution 原来线性基还有这种性质,我怎么不知道→_→ 假设${n}$个数可以消出${k}$个线性基,那么显然会有${2^k}$个不同的亦或和,${n}$个数相互排列显然会有${2^n}$个.神奇的事情就在于每种亦或和居然是一样多的,也就是都是${2^{n

关于java按位操作运算

<1>.在了解位移之前,先了解一下正数和负数的二进制表示形式以及关系:举例15和-15: 15 的原码: 00000000 00000000 00000000 00001111     补码: 11111111 11111111 11111111 11110000                 +1 = -15的原码:11111111 11111111 11111111 11110001 负数的原码即为:正数的原码取反,再加1. <2>位移操作:(只针对 int类型的数据有效,j

C语言之进制

进制 一种计数的方式.侧重点在于计数的时候是逢多少进一. 1)      C语言可以识别的进制 二进制 每一位. 0 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 在C语言中,写一个二进制的数的方式就是在前面加一个 0b或者0B的前缀,二进制每一位是0或者1,逢2进1; 2. 八进制 每一位. 0 1 2 3 4 5 6 7 10 11 在C语言中,写一个八进制的数的方式就是在前面加一个 0的前缀,逢8进1; %o    将整型变量中得数据以八进制的形式输出 3. 十进制

汇编 int10h(转)

原文:http://www.cnblogs.com/magic-cube/archive/2011/10/19/2217676.html INT 10H 是由 BIOS 对屏幕及显示器所提供的服务程序,而后倚天公司针对倚天中文提供了许多服务程序,这些服务程序也加挂在 INT 10H 内.使用 INT 10H 中断服务程序时,先指定 AH 寄存器为下表编号其中之一,该编号表示欲调用的功用,而其他寄存器的详细说明,参考表后文字,当一切设定好之后再调用 INT 10H.底下是它们的说明: AH 功 能

实验报告: 人脸识别方法回顾与实验分析 【OpenCV测试方法源码】

趁着还未工作,先把过去做的东西整理下出来~   Github源码:https://github.com/Blz-Galaxy/OpenCV-Face-Recognition (涉及个人隐私,源码不包含测试样本,请谅解~) 对实验结果更感兴趣的朋友请直接看 第5章 [摘要]这是一篇关于人脸识别方法的实验报告.报告首先回顾了人脸识别研究的发展历程及基本分类:随后对人脸识别技术方法发展过程中一些经典的流行的方法进行了详细的阐述:最后作者通过设计实验对比了三种方法的识别效果并总结了人脸识别所面临的困难与

【linux基础】17、TCP/IP网络基础(下)

一.IP地址 1.IANA IANA 就是指(Internet Assigned Numbers Authority) ,Internet号分配的机构.负责对IP地址分配规划以及对TCP/UDP公共服务的端口定义. 2.IP地址的基本格式 IPv4使用32位(4字节)地址,因此整个地址空间中有4,294,967,296(2^32)个地址,也就是近43亿个地址.IPv4地址在计算机内部是以二进制形式表示,是一个32位的二进制数,通常被分割为4个"8位二进制数"(也就是4个字节). IP地

2010年华中科技:奇偶校验

题目描述: 输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数(如'3’,输出:10110011). 输入: 输入包括一个字符串,字符串长度不超过100. 输出: 可能有多组测试数据,对于每组数据,对于字符串中的每一个字符,输出按题目进行奇偶校验后的数,每个字符校验的结果占一行. 样例输入: 3 3a 样例输出: 10110011 10110011 01100001 思路:将字母的ASCII码转化为对应的7位二进制数,若二进制数中1的个数为偶数,则校验位为1(形成奇数个1),若二