当前位置: 首页 > news >正文

C#基础内容学习笔记(一)

一、计算机常识

(一)、计算机(computer)俗称电脑是一种用于高速计算的电子计算机器可以进行数值计算又可以进行逻辑计算还具有存储记忆功能是能够按照程序运行自动、高速处理海量数据的现代化智能电子设备。(通俗的说就是替我们完成日常工作任务的一台工作处理的机器。。。)由硬件系统和软件系统所组成没有安装任何软件的计算机称为裸机可分为超级计算机、工业控制计算机、网络计算机、个人计算机、嵌入式计算机五类较先进的计算机有生物计算机、光子计算机、量子计算机等

(二)、计算机硬件(Computerhardware)是指计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称。这些物理装置按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础。简言之,计算机硬件的功能是输入并存储程序和数据,以及执行程序把数据加工成可以利用的形式。

1、控制器(ControlUnit),是整个计算机系统的控制中心(可以理解为整个计算机的中枢神经。。。),它指挥计算机各部分协调地工作,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理。

2、运算器(字面意思也就是用来进行数据运算的了。。。。)由算术逻辑单元(ALU)、累加器、状态寄存器、通用寄存器组等组成。算术逻辑运算单元(ALU)的基本功能为加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、求补等操作。计算机运行时,运算器的操作和操作种类由控制器决定。运算器处理的数据来自存储器;处理后的结果数据通常送回存储器,或暂时寄存在运算器中。与ControlUnit共同组成了CPU的核心部分。

3、存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据(比如说我们的硬盘、U盘、内存、光盘等等,都是存储设备。。。)。计算机中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。

4、输入设备是用户和计算机系统之间进行信息交换的主要装置之一(计算机的各项任务从哪里来???就是我们用这些设备输入给计算机。。。)。键盘(讲文字、符号输入到计算机内部),鼠标,摄像头(输入图像),扫描仪(图像。。。),光笔,手写输入板,游戏杆,语音输入装置(输入声音。。。)等都属于输入设备。

5、输出设备(OutputDevice)是计算机的终端设备,用于接收计算机数据的输出显示、打印、声音、控制外围设备操作等。也是把各种计算结果数据或信息以数字、字符、图像、声音等形式表示出来。例如说我们使用的打印机,就是输出设备。。。

6、中央处理器(CentralProcessingUnit,CPU),由运算器和控制器组成,是任何计算机系统中必备的核心部件。CPU由运算器和控制器组成,分别由运算电路和控制电路实现。

    如果计算机只有硬件的话,并不能完成我们所需要的功能,就如同一个人只有骨头、肉身,而软件就是计算机的灵魂、思想。。。

(三)、计算机软件(Computer Software)是指计算机系统中的程序及其文档。程序(对我们说写的文档说进行的规则进行的描述。。。)是计算任务的处理对象和处理规则的描述;文档(例如我们写的报告、处理的表格等)是为了便于了解程序所需的阐明性资料。程序必须装入机器内部才能工作,文档一般是给人看的,不一定装入机器。

1、应用软件就是应用计算机来解决某一类问题而设定的程序的集合,如工具软件、游戏软件、管理软件等都属于应用软件类(用来完成特定的任务,如处理图片、写程序、办公等)。

2、系统软件(计算机的操作者与计算机进行沟通的桥梁。。。用来监控、调度、维护计算机的硬件系统。。。)是各类操作系统,如windows、Linux、UNIX等,还包括操作系统的补丁程序及硬件驱动程序,都是系统软件类。

程序开发人员一般开发的都是应用软件。。。。。。。。。。。

二、编程语言

(一)机器语言:由于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言,用机器语言编程的程序成为目标程序。只有目标程序才能被计算机直接识别和执行。但是机器语言编写的程序无明显特征,难以记忆,不便阅读和书写,且依赖于具体机种,局限性很大,机器语言属于低级语言。

(二)汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序通常由三部分组成:指令、伪指令和宏指令。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。

(三)高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。

     高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。 像最简单的编程语言PASCAL语言也属于高级语言.

     高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:

1、解释类:执行方式类似于我们日常生活中的“同声翻译”(也就是可以理解为朋友A和B,A只会说英文,B只会说中文,需要沟通的话,这时有个即会说中文又会英文的C,由C进行同声翻译,A和B 就可以沟通了。。。),应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。

2、编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如Visual C++、Visual Foxpro、Delphi等。(比如还是朋友A和B,A只会说英文,B只会说中文,两个人通过写邮件的形式进行沟通,A讲写好的邮件交给某个人,全篇翻译为中文,然后发至B,B讲写好的中文回信发给某个人同样全篇翻译成英文后再给A,这样两个人收到的都是自己可以理解的全篇的文档,相对于同声翻译时一句一句进行翻译,理解起来更好理解那。。。。。)

3、对于一个程序,源代码编译成机器码之后运行起来比解释类的要快一点。C#属于编译类的。。。。

(四)、脚本语言。通常对于程序语言的分类分为机器语言、汇编语言以及高级语言,还有种分类方式,加入一种脚本语言。脚本语言是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言,它的命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。早期的脚本语言经常被称为批量处理语言或工作控制语言,一个脚本通常是解释运行而非编译。虽然许多脚本语言都超越了计算机简单任务自动化的领域,成熟到可以编写精巧的程序,但仍然还是被称为脚本。几乎所有计算机系统的各个层次都有一种脚本语言。包括操作系统层,如计算机游戏,网络应用程序,字处理文档,网络软件等。在许多方面,高级编程语言和脚本语言之间互相交叉,二者之间没有明确的界限。这类的常见的有JavaScript、VBScript、Perl、PHP、Python、Ruby、Lua。

 

转载于:https://www.cnblogs.com/wj80142249/p/5539673.html

相关文章:

  • Open CV缩放图像
  • 程序员之路:以Android证道
  • 地域划分
  • Unable to parse the default media type registry
  • (原)Matlab的svmtrain和svmclassify
  • Fastclick 导致click事件触发两次的问题,fastclickclick
  • 用spring-data-redis实现类似twitter的网站(转)
  • [javaSE] GUI(事件监听机制)
  • android WebViewClient和WebChromeClient
  • vim列模式编辑
  • kafka集群发送消息报错
  • apache2 启用php7.0
  • Android 仿网易新闻v3.5:上下滑动的引导页
  • C语言基础
  • angularjs与require的集成摘抄
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • Android组件 - 收藏集 - 掘金
  • Bootstrap JS插件Alert源码分析
  • CAP 一致性协议及应用解析
  • Fundebug计费标准解释:事件数是如何定义的?
  • Hibernate最全面试题
  • HTML中设置input等文本框为不可操作
  • js ES6 求数组的交集,并集,还有差集
  • REST架构的思考
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • Unix命令
  • 从setTimeout-setInterval看JS线程
  • 服务器从安装到部署全过程(二)
  • 给新手的新浪微博 SDK 集成教程【一】
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 理清楚Vue的结构
  • 聊聊hikari连接池的leakDetectionThreshold
  • 如何实现 font-size 的响应式
  • 通过npm或yarn自动生成vue组件
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 我的面试准备过程--容器(更新中)
  • 我感觉这是史上最牛的防sql注入方法类
  • 写代码的正确姿势
  • 中文输入法与React文本输入框的问题与解决方案
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • Java总结 - String - 这篇请使劲喷我
  • 大数据全解:定义、价值及挑战
  • 湖北分布式智能数据采集方法有哪些?
  • ​如何在iOS手机上查看应用日志
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (12)Hive调优——count distinct去重优化
  • (done) 两个矩阵 “相似” 是什么意思?
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (solr系列:一)使用tomcat部署solr服务
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442