———C语言的起源故事(简史)———

  C语言在70年代问世的,1978年由美国电话公司(AT&T)贝尔实验室正式发表。B.W.Kernighan和D.M.Ritchit合著了著名的"THE C PROGRAMMING LANGUAGE"一书也发生在这个时候。通常简称为《K&R》,也有人称它为《K&R》标准,但在此书中并没有定义一个完整的标准C,是后来由美国国家标准学会在此基础上制定了一个C语言标准,1983年发表,通常称之为ANSI C。

  C语言作为一门语言,想要真正的了解它就必须从它的诞辰开始去接触它,才能真正地得到它。早期的C语言主要用于UNIX系统,由于C语言的强大特性,C逐渐被引入到其他操作系统,并且很快流行在大,中,小和微型计算机上得到了广泛的使用。

———C语言特点———

  ①结构化,结构清晰,便于按模块化方式组织程序,易于调试和维护。

  ②表现能力和处理能力极强,不仅有丰富的运算符和数据类型,便于实现各类复杂的数据结构。

  ③可以直接访问内存的物理地址,进行位(bit)一级操作。集高级语言和低级语言功能于一体。

———硬件以及数据类型基本知识———

  变量:是一块内存区域,一块内存包含两个信息(属性),一个是地址,一个是存储内容(值)。所以在C语言中每一个变量都有一个地址,也有自己的存储内容。

  常量:指的是不会被修改的量,这个概念来自于汇编语言中的立即数概念,它是存储于指令代码中

  整型:用于描述整数的数据类型。

  长整形,短整型,无符号整型主要是通过整数的符号以及所占内存字节大小来区分的,作为整数可以分为正数和负数,因此C语言中有了无符号和有符号数的区别。

  无符号整型:最小值是0,最大值为(2^n)-1,n是在内存中类型所占的字节数。一般来说,int类型占4个字节,short int占2字节,long int占4或8个字节。

  字节(bait/Byte):是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型。[1B(byte)=8 bit]   计算机中的存储数据单元,一个8位的二进制数,是一个很具体的存储空间。0x01,0x45,0xFA.....

  位元:位指二进制中的一位,是二进制最小信息单位。

  字(bit):在计算机中,一串数码作为一个整体来处理或运算的,称为一个计算机字,简称字,字通常分为若干字节(每个字节一般是8位)。在存储器中,通常每个单元存储一个字,因此每个字都是可以寻址的。字的长度用位数来表示,在计算机的运算器,控制器中,通常都是以字为单位进行传送的。字出现在不同的地址含义是不同的。比如送去控制器的是指令,而送往运算器的就是一个数。

  控制器(controller):是按预定顺序改变主电路或控制电路的接线和改变电路中的电阻值来控制电动机的启动,调速,制动和反响的主令装置。是整个计算机系统的控制中心,控制器从存储器中逐条取出指令,分析每条规定的是什么操作以及所需数据的存放位置等,然后根据分析的结果向计算机其他部位发出控制信号,统一指挥整个计算机完成指令所规定的操作。

  运算器(arithmetic unit):计算机中执行各种运算和逻辑运算操作的部件。运算器的基本操作包括加减乘除四则运算法则,也有与,或,非,异或等逻辑操作,还有移位,比较和传送等操作。计算机运行时,运算器的操作种类由控制器决定。运算器处理数据来自存储器,处理后的结果通常送回存储器,或暂时寄存在运算器中。

  字长:计算的字长是指它一次可处理二进制数字的数目。计算机处理数据的速率,自然和它一次能加工的位数以及进行运算的快慢有关。一般大型计算机的字长为32-64位,小型计算机为12-32位,微型计算机4-16位,字长是衡量计算机性能的一个因素。

  计算机储存数据的形式:二进制,通常以源码的补码的形式来存储。

起源-C的故事的更多相关文章

  1. 操作系统Unix、Windows、Mac OS、Linux的故事

    电脑,计算机已经成为我们生活中必不可少的一部分.无论是大型的超级计算机,还是手机般小巧的终端设备,都跑着一个操作系统.正是这些操作系统,让那些硬件和芯片得意组合起来,让那些软件得以运行,让我们的世界在 ...

  2. Unix、Windows、Mac OS、Linux系统故事

    我们熟知的操作系统大概都是windows系列,近年来Apple的成功,让MacOS也逐渐走进普通用户.在服务器领域,恐怕Linux是无人不知无人不晓.他们都是操作系统,也在自己的领域里独领风骚.这都还 ...

  3. [转]操作系统Unix、Windows、Mac OS、Linux的故事

    [写得很江湖气,可惜找不到原作者了] 文章转自:http://blog.csdn.net/wenmingchan/article/details/49925379 http://www.jb51.ne ...

  4. 【转】操作系统Unix、Windows、Mac OS、Linux的故事

    电脑,计算机已经成为我们生活中必不可少的一部分.无论是大型的超级计算机,还是手机般小巧的终端设备,都跑着一个操作系统.正是这些操作系统,让那些硬件和芯片得意组合起来,让那些软件得以运行,让我们的世界在 ...

  5. Linux等操作系统杂谈

    这部分基本上都是感性认识,介绍一下发展历史什么的.所以基本上都不是我原创的,转载来源都标记在文中了,如果侵权的话请联系删除 操作系统发展历史吃瓜 <Unix.Windows.Mac OS.Lin ...

  6. [原创].NET 分布式架构开发实战之一 故事起源

    原文:[原创].NET 分布式架构开发实战之一 故事起源 .NET 分布式架构开发实战之一 故事起源 前言:本系列文章主要讲述一个实实在在的项目开发的过程,主要包含:提出问题,解决问题,架构设计和各个 ...

  7. PayPal、支付宝诞生的故事 | 概述起源篇

    你知道第三方支付是如何由来的吗? 第三方支付概述 说起第三方支付,好像大家都知道,天天不是用支付宝和微信吗?支付宝和微信支付确实是行业内非常具有代表的第三方支付公司,但现在他们已经不完全是一家第三方支 ...

  8. js 的起源故事

    "1994年,网景公司(Netscape)发布了Navigator浏览器0.9版.这是历史上第一个比较成熟的网络浏览器,轰动一时.但是,这个版本的浏览器只能用来浏览,不具备与访问者互动的能力 ...

  9. atitit.GMT UTC Catitit.GMT UTC CST DST CET 星期 月份 节日 时间的不同本质and起源

    atitit.GMT UTC Catitit.GMT UTC CST DST CET 星期 月份 节日 时间的不同本质and起源 1. GMT(Greenwich Mean Time)是格林尼治平时 ...

随机推荐

  1. Oracle编码

    三.解决数据库乱码原理特辑内容 3.1 前言 在解决数据库乱码问题中,涉及到三个方面的字符集:1.oracel server端的字符集:2.oracle client端的字符集:3.dmp文件的字符集 ...

  2. spring boot 单元测试

    Java新手 纯记录 @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = OutDemoApplication.clas ...

  3. [ 随手记 2 ] C/C++ 数组/指针/传数组到函数/指针数组/数组指针

    1.=================================================================== 1,数组是一块内存连续的数据.2,指针是一个指向内存空间的变 ...

  4. Python3 与 Python2 的不同

    1. Python3中的字典,删除了has_key(key)的方法. Python2: if result.has_key(middle_s) != None result[middle_s] = 1 ...

  5. sql执行内部操作期间检测到不一致性解决方案

    解决方法:重启下SQL服务,把下面脚本运行即可.运行后,坏掉的数据库可能会丢失. --mydb 为坏了的数据库名--mytable  为坏了的据库表--master 这里不需要更改 use mydb  ...

  6. Python3常用函数、方法总结(持续更新…)

    最近刷LeetCode,自己自娱自乐完之后去discussion看大佬们的各种巧妙解法,总是止不住的双击666--加上最近Python3用的比较多(虽然Python实在不推荐跑算法题目,一是运行效率太 ...

  7. ubuntu18安装navicat

    1.登陆 http://www.navicat.com.cn/download/navicat-for-mysql 页面下载navicat安装包,务必选位置1-64bit ps: 中文版乱码问题严重, ...

  8. SDL2.0.9源码分析

    1.首先 2.0.9编译so出来跟一直不一样,多了个hidapi  库 2.跟Tocy的对比,SDLmain 执行的路径不一样,一个是/src/main/android/SDL_android_mai ...

  9. 2018-2019-2 20165313《网络对抗技术》Exp1 缓冲区溢出实验

    实践涉及指令 NOP:NOP指令即"空指令".执行到NOP指令时,CPU什么也不做,仅仅当做一个指令执行过去并继续执行NOP后面的一条指令.(机器码:90) JNE:条件转移指令, ...

  10. Python基础:十一、流程控制(if语句、while循环)

    一.流程控制——if循环 1.第一种语法: if条件: #引号是将条件与结果分开 结果1 #四个空格,或者一个tab键,这个是告诉程序满足条件的话,运行这个结果 结果2 #如果条件是真(True)执行 ...