文章目录
计算机系统的组成
计算机的基本结构
指令:计算机执行某种操作的机器指令,可以被计算机硬件直接识别和执行。计算机指令用二进制代码表示,一条指令通常是由操作码和操作数组成。
计算机程序是指完成一定功能的指令的有序集合。
程序设计语言的发展
C++与C的关系
C++对C的增强,主要表现在:在原来面向过程的机制基础上,对C语言的功能做了不少扩充。;增强了面向对象的机制。
关键字:也称为保留字,是C++归定的有特定含义的词语。C++03标准定义了63个关键字,主要是关于数据类型和语句的词语。
std:命名空间,说明当前使用的内容在哪个命名空间的内容。
C++程序的特点
(1)C++程序总是从mian函数开始执行。
(2)书写格式自由
(3)分号是语句的组成部分,表示语句结束。
(4)程序中可以加注释,便于阅读。
C++的目标是–在保证效率与C语言相当的情况下,加强程序的组织性,保证同样功能的程序,C++更短小。
课后习题
输入设备主要有键盘、鼠标、扫描仪、条形码阅读嚣、光笔和触摸屏等。输出设备主要有显示器、绘图仪、打印机和投影仪等。
进位计数制
各种信息进入计算机,都要转换成“0”和“1”的二进制形式。计算机采用二进制的原因是:
►(1)物理上容易实现,可靠性高。
►(2)运算简单,通用性强。
►(3)便于表示和进行逻辑运算。
进位计数制的特点:采用进位的方式进行计数;使用位置表示法。
进制 | 二进制 | 十进制 | 八进制 | 十六进制 |
---|---|---|---|---|
进位规则 | 逢二进一 | 逢十进一 | 逢八进一 | 逢十六进一 |
基数 | 2 | 10 | 8 | 16 |
基本符号 | 0,1 | 0,1,2, …,9 | 0,1,2, …,7 | 0,1,2, …,9,A,B,C,D,E,F |
位权 | 2 i ^i i | 10 i ^i i | 8 i ^i i | 16 i ^i i |
表示符号 | B(binary) | D(decimal) | O(octal) | H(hexadecimal) |
r进制数转换成十进制数:
(100101.11)
B
_B
B=1x2
5
^5
5+0x2
4
^4
4+0x2
3
^3
3+1x2
2
^2
2+0x2
1
^1
1+1x2
0
^0
0+1x2
−
1
^{-1}
−1+1x2
−
2
^{-2}
−2=(37.75)
D
_D
D
一位十六进制等于4位二进制,一位8进制等于3位二进制。
数值数据在计算机中的表示
整数在计算机中的表示:由于计算机只有0和1的数据形式,因此数的正(+)、负(–)号也要用0和1编码。通常将一个数的最高二进制位定义为符号位,称为数符,用0表示正数、1表示负数,其余位表示数值。
原码:负数原码的符号位为1。
反码:负数的反码为将原码除符号位外的所有位按位取反。
补码:负数的补码为将反码加1
正数的原码反码补码一致,数据在计算机中是按照补码的形式存放。
西文字符包含英文字符、数字、各种符号。最常用的西文字符集是美国信息交换标准代码ASCII(american
standard code for information interchange)。ASCII码使用7位二
进制编码,编码值从0到127,可以表示即128个字符
ASCII码表
课后题
正数的补码与原码相同,负数的补码是该数的反码加1。题目中给出的是X为负数,因此[X]补应该是该数的反码加1,且在最前面加上符号位1来表明是负数,而[-X]应该是个正数,它的补码应该与原码相同。下面我们来看个例子,假设X=-1011001,那么按照求补码的原则,先求反码为0100110,再加1并加上符号位得[X]=10100111,而[-X]应该等于原码,所以[-X]=01011001,对比这两个结果,我们不难发现,由[X]补求[-X]补,是将 [X]补连同符号位一起各位变反,末位加1。
一. 字符型的分类和表示范围
char:是有符号还是无符号数视编译器而定,一般为有符号数,下文把它全部当成有符号数进行讨论。
表示范围:32位和64位机器上均是一个字节,所以是八个bit位,最高位为符号位之后,后七位是数据
位,所以它的取值范围是-128---127(-2^7---2^7-1)
signed char :有符号数,和上面一样
unsigned char:无符号字符型
表示范围:一个字节,八个bit位全部是数据位,所以取值范围是0---255(0---2^8-1)
二. 计算机对字符型数据的存储和读取
字符型在计算机中是按照整型的规则进行存储的,如果是有符号类型,则最高位为符号位,0表示
正,1表示负,其余七位为数据位。如果是无符号数,则八个位均为数据位。
这里我们讨论有符号位中,0和-128的存储规则。如果按照有符号数的存储规则,我们知道0000
0000表示0,那么1000 0000表示负0,这显然与我们的现实生活不符,而且也造成表示范围的减小。
那么1000 0000表示的是什么数字呢。这里规定,当计算机用一各有符号数去读取000 0000时,会自
动的在1的前面补1,这样原来的8个bit位就变成了9个,其中补充的1作为符号位,又因为计算机是以
补码的形式进行存储,这样1 1000 0000(补码)减1,变成了1 0111 1111(反码),再符号位不变,其余
位按位取反得到1 1000 0000(原码),即得到了-128。