程序是怎样跑起来的
上QQ阅读APP看书,第一时间看更新

第2章 数据是用二进制数表示的

热身问答

阅读正文前,让我们先回答下面的问题来热热身吧。

问题

1. 32位是几个字节?

2.二进制数01011100转换成十进制数是多少?

3.二进制数00001111左移两位后,会变成原数的几倍?

4.补码形式表示的8位二进制数11111111,用十进制数表示的话是多少?

5.补码形式表示的8位二进制数10101010,用16位的二进制数表示的话是多少?

6.反转部分图形模式时,使用的是什么逻辑运算?

怎么样?是不是发现有一些问题无法简单地解释清楚呢?下面是笔者的答案和解析,供大家参考。

答案

1. 4字节

2. 92

3. 4倍

4. -1

5. 1111111110101010

6. XOR运算

解析

1.因为8位=1字节,所以32位就是32÷ 8=4字节。

2.将二进制数的各数位的值和位权相乘后再相加,即可转换成十进制数。

3.二进制数左移1位后会变成原来的值的2倍。左移两位后,就是2倍的2倍,即4倍。

4.所有位都是1的二进制数,用十进制数表示的话就是-1。

5.使用原数的最高位1来填充高位。

6. XOR运算只反转与1相对应的位。NOT运算是反转所有的位。

本章重点

要想对程序的运行机制形成一个大致印象,就要了解信息(数据)在计算机内部是以怎样的形式来表现的,又是以怎样的方法进行运算的。在C和Java等高级语言编写的程序中,数值、字符串和图像等信息在计算机内部都是以二进制数值的形式来表现的。也就是说,只要掌握了使用二进制数来表示信息的方法及其运算机制,也就自然能够了解程序的运行机制了。那么,为什么计算机处理的信息要用二进制数来表示呢?接下来我们就从其原因开始说起。