———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. 学习Spring中遇到关于BeanFactory及测试类的问题

    最近在学习Spring,使用的是Spring 5.0.1 学习书本中使用的是4.0 学习书本中使用以下来加载配置文件及设置 Resource resource = new ClassPathResou ...

  2. google Kickstart Round F 2017 四道题题解

    Problem A. Kicksort 题意抽象一下为: 对于一个每次都从数列正中间取划分数的快速排序,给定一个1-n的排列,问快排的复杂度对于这个排列是否会退化为最坏复杂度. 数据范围: 测试组数1 ...

  3. php中print、echo、print_r、var_dump的区别

    echo,print,print_r,var_dump区别 print只能接收一个字符串:print有返回值1(可在表达式中使用) e.g print 'string 1' e.g if($exp & ...

  4. [ 随手记 5 ] C/C++ 继承

    个人理解: 继承:(意译)继续承接: A继承B,则A是派生类/子类,B为基类/父类: B有的成员变量/性质,A全部都有,而A有的B不一定有,在数学集合上可以说:B是A的子集: A继承B,可以说是A在B ...

  5. 点击按钮下载图片(ie,FF,chrome)

    参考网上的一些资料后,总结出来 <!DOCTYPE html><html> <head> <meta content="text/html; cha ...

  6. Linux与Windows的几点区别

    echo $PATH 回显Linux环境变量PATH的值,Linux下的环境变量必须大写echo %path% 回显Windows环境变量path的值 export PATH=/usr/local/t ...

  7. Javascript 3.2

    对象的三种类型:1.用户定义对象:程序员自己创建的对象 2.内建对象:Javascript语言中的固定对象,如Array/Math/Data等 3.宿主对象:由浏览器提供的对象 BOM:浏览器对象模型 ...

  8. 下载jar包的网站

    http://mvnrepository.com/ http://findjar.com http://sourceforge.net/

  9. [工作积累] NBA 2K16 mobile终于发布了

    忙了大半年, 终于出来了. iOS: https://itunes.apple.com/us/app/nba-2k16/id984732818?mt=8 Android: https://play.g ...

  10. GraphQL搭配MongoDB入门项目实战

    什么是GraphQL GraphQL 是一种面向 API 的查询语言.在互联网早期,需求都以 Web 为主,那时候数据和业务需求都不复杂,所以用 RestAPI 的方式完全可以满足需求.但是随着互联网 ...