第一章 程序设计和C语言
C语言的特点:
-
语言简洁、紧凑。
-
运算符和运算数据类型丰富。
-
模块化、结构化。
-
允许直接访问物理地址。
-
程序执行效率高,可移植性好。
C程序实例
#include <stdio.h>
int main(){
printf("hello world!");
return 0;
}
<stdio.h> 标准输入输出库。std:standard(标准) ;io:输入输出。
运行C程序的步骤:
计算机采取二进制的原因
容易实现 二进制只有0和1两个状态,电子器件具有实现的可行性
运算简单 二进制的运算法则少,运算简单,使硬件结构大大简化
有逻辑性 二进制的0和1正好和逻辑代数的假和真相对应,用二进制表示二值逻辑很自然
有稳定性 二进制只有0和1两个状态,传输和处理时不容易出错
由于只有0,1两个状态,门级电路实现起来比较简单。
在C语言中,整数常用三种形式表示
十进制整数:123,-456,6 %d
八进制整数:以0开头,如012,-016 %o
十六进制整数:以0x开头,如0x12 %x
带符号数的表示
通常规定一个数的最高位为符号位。一个数在计算机内部的表示称为机器数。
正整数的补码等于原码。负整数的补码:将该数的绝对值按位取反再加1。
正整数的反码就等于反码本身,负整数的反码就等于除符号位,其他位按位取反。
(1)原:1000 0001 + 0000 0001应该等于0。但若直接相加1000 0010 明显不等于0。
由上我们知道让符号位参与计算,对于减法来说结果是不正确的。
(2)反:1111 1110 + 0000 0001 = 1111 1111 对应的原码:1000 0000 = -0
我们可以知道反码解决不了正负0的问题。
(3)补码:1111 1111 + 0000 0001 = 0000 0000 对应原码 0000 0000 = +0
补码解决了正负0的问题,以int 32 位为例子,-0就代表了 -2^32。
值得一说的是,int 32 位为例子, -2^32 并没有对应的原码。
浮点数在内存中的表现形式
阶符:幂的正负。 数符:位数的正负。
ASCII:American Standard Code for Information Interchange 美国信息标准交换码