Day3学习记录

一、行业信息

1. 操作系统之Unix和Linux

(1) 操作系统

Day3学习记录_第1张图片

Day3学习记录_第2张图片

操作系统属于一种底层软件,将上层软件和硬件连接起来,像调配资源的大管家。

操作系统的诞生:

1974年,世界上第一台电子计算机ENIAC诞生,它不具备操作系统,除运算过程意外,输入输出都由人工操作。到1950s,出现了批处理系统。操作员将用户提交的作业分类,每一批作业都有对应的监督程序依次处理,这个监督程序就是操作系统的雏形。后来,从多道程序系统到分时系统再到实时操作系统,不断接近于现代操作系统的概念。

Day3学习记录_第3张图片

(2)Unix

1964年,美国电话电报公司(AT&T)、通用电器公司(GE)及麻省理工学院(MIT)合作,提出了一个超级分时操作系统的开发计划Multics OS。五年之后计划未实现,贝尔实验室退出,其中的成员肯•汤普森(Ken•Thompson)为了能继续玩他在Multics上开发的一个游戏,自己又开发了一个简单操作系统Unics,谐音Unix。由于Unix硬件通用性和可移植性差,汤普森的同事丹尼斯•里奇(Dennis Ritchie)在B语言的基础上开发了一套新的语言,即C语言。后二人发表论文,Unix正式问世。

在Unix开始收费和商业闭源之后,一位名叫理查德·马修·斯托曼(RichardMatthew Stallman)的大叔心生不满,在1984年发起了自由软件体系GNU,模仿Unix的界面和使用方式,重新开发一个开源的版本,起草了GPL(General PublicLicense,通用公共许可证),开创了开源软件的黄金时代。

GPL协议下的自由软件,允许用户自由拷贝、修改和销售。但是,对其源代码的任何修改,都必须向所有用户公开。后来GNU开发了一系列高质量的免费软件,其中就包括gcc系列编译程序,还有emacs编辑系统、bash shell程序、gdb调试程序等。

(3)Linux

1987年,荷兰的谭宁邦教授为了方便教学自行开发了与Unix兼容的操作系统MINIX,由于他只认为其只用于教育目的,且不允许别人添加代码,所以MINIX的发展被限制。在芬兰求学的年轻小伙子林纳斯不满足于MINIX的功能,利用GNU的bash当做开发环境,gcc当做编译工具,成功编写出了拥有10000行代码的Linux内核(Linux kernel)。

林纳斯的Linux内核基于POSIX(Portable Operating System Interface for Computing Systems,可移植操作系统接口)标准,能够与绝大多数Unix操作系统兼容。他在发布时,选择了遵循GPL协议和GNU宗旨,所以正式发布时,命名为“GNU/linux”。

(4) Unix和Linux的区别

Linux是开源自由软件,Unix是对源代码实行知识产权保护的传统商业软件。两者完全不同。并且Linux也不是类Unix系统,只是风格相像,且未通过官方认证。

2. 北京外国语大学人工智能与人类语言重点实验室中人工智能发挥着怎样的作用

(是一位学英语的朋友告诉我,他们老师提到了北外的人工智能实验室,包括他们未来的保研方向也有和人工智能交叉的,所以搜索了一下。)

通过自然语言处理以求实现语言智能,主要还是服务于老年群体和与脑科学相关的临床医学(脑科学研究的最高水平就是人类语言的认知研究)。简而言之还是以人工智能为工具,研究人类在语言认知上的生理机制,为人类语言临床治疗及康复提供新方案。

3. 看字节跳动官网学到的

(1) 了解概念:前端/后端

前端是展现给用户的、可视的网页界面。如登录时输入账号密码、获取用户数据、点击登录按钮从而实现登陆的交互操作,这一系列都与前端有关。

后端是在后台操控、用户感知不到却非常重要的存在,支撑着前端的运行。逻辑处理、数据交互、数据验证、数据安全、数据存放等都依托于后端实现。

(2) 软件开发的完整过程:

需求分析-概要设计-详细设计-开发-测试-验收上线-维护

(3) 研发部分为 后端、前端、大数据、测试、算法、客户端、基础架构、多媒体、安全、计算机视觉、数据挖掘、运维、自然语言处理、机器学习、硬件。

对编程能力、数据结构和算法基础、系统设计能力有较高的要求。

二、c语言知识

1.常见代码问题:

(1) 编辑时异常(如printf打成print)

(2) 编译时异常(如链接库时找不到头文件)

(3) 运行时异常(代码本身没有问题)

2.程序执行过程

Day3学习记录_第4张图片

3.汇编语言

Day3学习记录_第5张图片

(简单加法计算)

调试-窗口-反汇编

mov移动 add添加 push压栈 pop出栈 call调用 eax32位寄存器

断点:在选中行前单击 

逐语句执行:F11     逐过程执行:F10 

跳出过程:Shift+F11  停止调试:Shift+F5

4.IDE:能够编写代码的平台的总称(大白话)

集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。如微软的Visual Studio系列,Borland的C++ Builder、Delphi系列等。该程序可以独立运行,也可以和其它程序并用。IDE多被用于开发HTML应用软件。

* 编辑——写;编译——变成可执行程序;

Ctrl+F,查找;Ctrl+S,替换;

Ctrl+回车,在上面开启新的一行;

Ctrl+Shift+U,小写变大写;Ctrl+U,大写变小写;

摁住Alt+方向键,可上下移动。

------------------------------------------------------

5.数据类型的作用:

编译器预算对象(变量)分配的内存空间大小

数据的类型不同,开辟的空间大小就不同。

6. 常量与变量

(1)常量:在程序运行过程中,其值不能发生改变。(只读变量)

变量:在程序运行过程中,其值可以发生改变。

const 数据类型 常量名=值 (不安全)

#define 常量名 值

(2)标识符:    驼峰命名法:RoleLv/role_lv

不能使用系统关键字;允许使用字母数字下划线;

不允许数字开头;区分大小写;见名知意。

7. 整型变量的定义和输出

(1)无符号unsigned;有符号signed(可省略)

(2)进制:二进制0-1    八进制0-7 %o

十六进制0-9 10-15(a-f/A-F) %x/%X

定义八进制数据,以0开头。

定义十六进制数据,以0x开头。

在计算机定义数据时,不可以直接定义二进制。

8.整型变量的输入

scanf安全问题解决:

#define _CRT_SECURE_NO_WARNINGS(放在首行)

或pragma warning(disable:4996)

9.整型大小和取值范围

(1) sizeof :计算数据类型在内存中占的字节(BYTE)大小

返回值类型:size_t         

1字=2字节( 1 word = 2 byte )   1字节=8位( 1 byte = 8bit )

sizeof(数据类型) sizeof(变量名)

(2)short <= int <= long < long long

Day3学习记录_第6张图片

*当一个小的数据类型赋值给一个大的数据类型。不会出错,因为编译器会自动转化;但当一个大的数据类型赋值给一个小的数据类型,可能丢失高位。

10.字符型

(1)char的本质就是一个1字节大小的整型。

Day3学习记录_第7张图片

‘0’-48   ‘A’-65   ‘a’-97

(2)转义字符

Day3学习记录_第8张图片

Day3学习记录_第9张图片

打印“你瞅啥”——printf(“ \“你瞅啥\” ”)

打印%需要使用%%

11.浮点型:float、double

%p:输出一个变量对应的内存地址编号(无符号十六进制整型数)

%e:用于指定浮点类型数据使用指数形式输出

(1)浮点型数据存储在内存中的格式为符号位 指数位 小数位

(2)科学计数法赋值:

3.2e2=3.2*10^2       3.2e-2=3.2*0.1^2

Day3学习记录_第10张图片

Day3学习记录_第11张图片

三、代码

小写转大写

Day3学习记录_第12张图片

你可能感兴趣的:(c语言)