计算机结构组成

  • 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的9种控制语句

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

C的34种运算符

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

C学习笔记-预备知识的更多相关文章

  1. C++学习笔记-预备知识

    1.1 C++简介 C++融合3种不同的编程方式:C语言代表的过程性语言.C++在C语言基础上添加的类代表的面向对象语言.C++模板支持的广泛编程. 1.2 C++简史 1.2.1 C语言 Ritch ...

  2. jQuery学习笔记 - 基础知识扫盲入门篇

    jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...

  3. SQL 数据库 学习 004 预备知识

    数据库 预备知识 我的电脑系统: Windows 10 64位 使用的SQL Server软件: SQL Server 2014 Express 如果我们要学习这个数据库,我们需要学习什么知识. 预备 ...

  4. Python 2.7 学习笔记 基本知识

    python是一种解释型的.面向对象的.带有动态语义的高级程序设计语言.本文介绍下python的基本知识. 一.安装 各种操作系统有自己的安装方法,linux系统一般都自带了python的环境.这里不 ...

  5. Unity3D学习笔记——初级知识

    一:Unity欢迎窗口对于初学者来说有很多有价值的信息,值得用户关注,以下将简要介绍这个窗口中的相关内容: 1.Video Tutorials: 提供unity相关的教程 ,包括用户手册 .组件手册以 ...

  6. three.js学习笔记--基础知识

    基础知识 从去年开始就在计划中的three.js终于开始了 历史介绍 (摘自ijunfan1994的转载,感谢作者) OpenGL大概许多人都有所耳闻,它是最常用的跨平台图形库. WebGL是基于Op ...

  7. JavaScript学习笔记——基本知识

    JavaScript学习的教程来自后盾网 1>JavaScript的放置和注释 1.输出工具 A.alert(); B.document.write(); C.prompt("&quo ...

  8. SQLServer学习笔记<>.基础知识,一些基本命令,单表查询(null top用法,with ties附加属性,over开窗函数),排名函数

    Sqlserver基础知识 (1)创建数据库 创建数据库有两种方式,手动创建和编写sql脚本创建,在这里我采用脚本的方式创建一个名称为TSQLFundamentals2008的数据库.脚本如下:   ...

  9. java虚拟机JVM学习笔记-基础知识

    最近使用开发的过程中出现了一个小问题,顺便记录一下原因和方法--java虚拟机 媒介:JVM是每一位从事Java开发工程师必须翻越的一座大山! JVM(Java Virtual Machine)JRE ...

随机推荐

  1. Linq 分组查询

    根据部门分组 ,然后存储部门下所有员工 public class Custom { public string dname { get; set; } public List<Employees ...

  2. winform中的Windows Media Player播放器设置

    namespace WindowsMediaPlayer{ public partial class Form1 : Form { Form2 form2;//声明from2窗体 public For ...

  3. centos 升级内核方法

    方法1:rpm安装方式 rpm安装包可以通过这个网站下载: 这个是CentOS6 x64 : http://elrepo.org/linux/kernel/el6/x86_64/RPMS/ 这个是Ce ...

  4. trigger(type,[data]) 在每一个匹配的元素上触发某类事件。

    trigger(type,[data]) 概述 在每一个匹配的元素上触发某类事件.大理石平台价格表 这个函数也会导致浏览器同名的默认行为的执行.比如,如果用trigger()触发一个'submit', ...

  5. PHP mysqli_next_result() 函数

    定义和用法 mysqli_next_result() 函数为 mysqli_multi_query() 准备下一个结果集. 语法 mysqli_next_result(connection);   执 ...

  6. Rapid Object Detection using a Boosted Cascade of Simple Features 部分翻译

    Rapid ObjectDetection using a Boosted Cascade of Simple Features 使用简单特征级联分类器的快速目标检测 注:部分翻译不准处以红色字体给出 ...

  7. Linux下 Nginx 启动 重启 关闭

    命令 nginx -s reload :修改配置后重新加载生效 nginx -s reopen :重新打开日志文件 nginx -t -c /path/to/nginx.conf 测试nginx配置文 ...

  8. dup2函数

    将当前系统中的进程信息打印到文件中 命令行:ps aux > out 将ps得到的信息重定向到out文件中 使用dup2文件在程序中完成. int dup2(int oldfd,int newf ...

  9. hive-server 启动失败问题小记

    Unable to instantiate using constructor(MetricRegistry, HiveC onf) for reporter org.apache.hadoop.hi ...

  10. JavaWeb_(Spring框架)Spring整合Hibernate

    Dao层类要继承HibernateDaoSupport.java父类 原先使用Hibernate框架hibernate.cfg.xml配置数据库 <hibernate-configuration ...