计算机组成
什么是程序
程序是有序的指令,程序保存在外存,在内存运行,且之间的过程用cpu来执行。
程序设计步骤
计算机数据
1.数值数据-进制
(1)二进制 0-1
基数:2
位权表示法:
2的三次方,二次方这些次方就是位权 。
🔔二的16次方==65536
(2)十进制 0-9
基数:10
十进制转二进制:
法一:除二取余数,余数倒置。
法二:凑数法
威权表示法:同上,把2换成10。
(3)十六进制 0-f
0x开头表示
f过了10
四个二进制可以表示一个十六进制。
eg:1111 == 15 == f
(4)八进制 0-7
0开头表示
7过了10
三个二进制可以表示一个八进制
eg:111 == 7
(5)十进制转化为十六,八进制方法
先转化为二进制,再转化为十六,八进制。
eg:
🔔0x表示十六进制,2 d 5 7 可以用8421码来算出来0010 == 0*8 + 0*4 + 1*2 + 0*1 == 2,其余都一样d == 8+4+0+1 == 13。
非数值数据
ASCII
:
man ascii
0 -- '\0'==NULL
10 -- '\n'
换行符
32 -- ' '
空格符
48 -- '0'
65 -- 'A'
97 -- ’a‘
标准输出函数
printf
(
格式控制串
,
输出表
);
格式控制串:格式控制符
+
普通字符
普通字符:原样输出
格式控制符:将输出表数据按照指定格式显示
%
d
--
十进制数
%
f
--
浮点型数据
%
c
--
字符数据
%
x
--
十六进制数
%
o
--
八进制数
输出表:输出显示的数据,多个数据用,分隔
词法符号
词法符号是语言的基本组成单位,数据类型是数据的基本属性。
词法符号有:关键字、 标识符、分隔符、运算符和标点符号。
1.关键字
关键字是由系统预定义的词法符号,有特定的含义,不
允许用户重新定义。
2.标识符
标识符是由程序员按照命名规则自行定义的词法符号
标识符的命名规则:
1.
由数字、字母、下划线组成
2.
不能以数字开头
3.
不能和关键字重名
3.分隔符
分隔符是用来分隔其他的词法符号,主要包括
:
空格符、制表符、换行符号、注释
通过对分隔符的恰当运用,使得代码的外观格式更为清晰易读
4.注释
//
:注释当前行
//
后的所有内容
/* ... */
:注释
...
部分内容,
...
可以是多行
#if 0 ... #endif
:
0
时注释掉中间语句,不为
0
时解除注释
5.标点符号
C
语言每一条语句结束有
;
6.运算符
运算符是表示运算的词法符号,
C
语言有非常丰富的运算 符,按功能可以分为: 算术运算符、 逻辑运算符、关系运算符、位运算符、赋 值运算符、 递增递减运算符、地址运算符、逗号运算符、sizeof运算符。
7.算术运算符
+ - * / %
注:整数相除结果没有小数
8.逻辑运算符
&& || !
&&
:
与运算
&&
真 假
真 真 假
假 假 假
||
:
或运算
||
真 假
真 真 真
假 真 假
🔔
C语言中
0
为假,非
0
为真
9.位运算符
计算机的数据存储都是以数据的二进制补码形式进行存 储,数据计算也都是以数据的二进制补码形式进行运算:
& |
^ ~
>> <<
eg:
216
&
108
==
72
216
:
1101
1000
108
:
0110
1100
注:
一一对应,都为1才为1,否则为0
^
:
异或,相异为
1
,相同为
0
10.原码,反码,补码
在有符号数当中最高位是符号位,
0
代表正数,
1
代表负数
正数的原码
==
正数的反码
==
正数的补码
负数的补码
==
负数的反码
+
1
负数的反码
==
负数的原码符号位不变,其余位取反
例:
-
6
用
8
位存储空间,最高位为符号位,
7
位数据位
原码:
1
000 0110
反码:
1
111 1001
补码:
1
111 1010
🔔-128到127,用8位存储,因为他们二进制只有7位,第八位是用来存储符号位。超过的就得用16位,因为必须有一个符号位。
🔔
意负数的原码:
1.
负数的补码
-
1
,符号位不变其余为取反
2.
负数的补码符号位不变其余为取反后再
+
1
11.关系运算符
> >= < <= == !=
C
语言中
==
表示判断等号,
=
表示赋值