C学习笔记-预备知识

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cj5785/article/details/88983023

计算机结构组成

  • CPU(中央处理器)(控制器+运算器)
  • 存储器(内存+外存)
  • 输出设备
  • 输入设备

计算机系统组成

  • 硬件系统
    • 主机
      • 中央处理器
        • 运算器
        • 控制器
      • 内存储器
        • 只读存储器
        • 随机存储器
    • 外部设备
      • 输入设备
      • 输出设备
      • 外存储器
  • 软件系统
    • 系统软件
      • 操作系统
      • 语言处理系统
      • 系统服务程序
      • 数据库管理系统
    • 应用软件
      • 文字处理软件
      • 表格处理软件
      • 辅助设计软件
      • 实时控制软件

CPU结构

CPU结构

  • 8位寄存器:AL 28
  • 16位寄存器:AX 216
  • 32位寄存器:EAX 232
  • 64位寄存器:REAX 264

程序和指令

  • 指令是对计算机进行程序控制的最小单位
  • 所有的指令的集合称为计算机的指令系统
    • 机器指令格式
      操作码 + 操作数
  • 程序是为完成一项特定任务而用某种语言编写的一组指令序列

位,字节的概念

位:计算机中是以二进制来存储数据的,也就是0和1,一个二进制位(表示0或1),叫做一位,记为1bit。
字节:8个位(bit)代表一个字节

进制

二进制:逢二进一,只有0和1,用0b前缀标识
八进制:逢八进一,0~7,用0前缀标识
十六进制:逢十六进一,09,AF,用0x前缀标识

二进制转八进制:三个一组,相加连接
二进制转十六进制:四个一组,相加连接

其他进制转十进制(如abcde(每个字母代表一个数))
a * 进制4 + b * 进制3 + c * 进制2 + d * 进制1 + e * 进制0
用相应的位乘以进制的权重次幂,然后相加。

整数在计算机内部的存储方式

所有整数按补码存放

原码

将最高位做为符号位(0代表正,1代表负),其余各位代表数值本身的绝对值
+7的原码是00000111
-7的原码是10000111
+0的原码是00000000
-0的原码是10000000

反码

一个数如果值为正,那么反码和原码相同
一个数如果为负,那么符号位为1,其他各位与原码相反
+7的反码00000111
-7的反码11111000
-0的反码11111111

补码

原码和反码都不利于计算机的运算,如:原码表示的7和-7相加,还需要判断符号位。
正数:原码,反码补码都相同
负数:最高位为1,其余各位原码取反,最后对整个数 + 1
-7的补码:=
10000111(原码)
11111000(反码)
11111001(补码)
+0的补码为00000000
-0的补码也是00000000

计算机中的运算

用补码进行运算,减法可以通过加法实现
7-6=1
7的补码和-6的补码相加:00000111 + 11111010 = 100000001
进位舍弃后,剩下的00000001就是1的补码
-7+6 = -1
-7的补码和6的补码相加:11111001 + 00000110 = 11111111
11111111是-1的补码

语言的层次划分

  • 高级语言:A + B
  • 汇编语言:ADD AX BX
  • 机器语言:0000 0001 1101 1000

主流语言发展历程

机器语言 -> 汇编语言 -> C语言 -> ObjectiveC语言 & C/C++语言 -> Java/C#/PHP/Lua/Python/VB···

C语言的特点

  • 优点
    • 代码量小
    • 执行速度快
    • 功能强大
    • 编程自由
  • 缺点
    • 编写代码实现周期长
    • 可移植性较差
    • 过于自由,经验不足容易出错
    • 对平台库依赖较多

C的32个关键字

auto break case char const continue default do
double else enum extern float for goto if
int long register return short signed sizeof static
struct switch typedef unsigned union void volatile while

C语言32个关键字

C的9种控制语句

if( )else for( )~ while( )~
do~while( ) continue break
switch goto return

C的34种运算符

算术运算符: + - * / % ++ –
关系运算符: < <= == > >= !=
逻辑运算符: ! && ||
位运算符: << >> ~ | ^ &
赋值运算符: = 及其扩展
条件运算符: ?:
逗号运算符: ,
指针运算符: * &
求字节数: sizeof
强制类型转换: (类型)
分量运算符: **. -> **
下标运算符: []
其它: ( ) -

猜你喜欢

转载自blog.csdn.net/cj5785/article/details/88983023
今日推荐