cs107 编程范式(一)

660 阅读3分钟

本课程内容

  • c
  • c++
  • 汇编
  • 函数式编程
  • 并发编程
  • python

c语言是面向过程的语言,其主要是通过函数调用来进行编程。

c++是面向对象的语言,使用myobject->dothis的形式,即通过对象来进行处理。

汇编主要用于理解c语言的编译过程,函数调用等操作和c++中引用和类的实质。

函数式编程即在函数中不产生副作用,不改变原始的数据结构。在c和c++中经常会通过指针和引用来对传入函数的数据进行更改,通过副作用来进行编程。

并发编程如下图所示。处理器某一时刻只属于一个进程,不同进程之间交替执行。这导致不同进程在处理公共资源时,会出现问题。例如,当不同用户对同一账户进行处理时,查询金额和取钱操作要属于原子性事务,不然会产生问题。

捕获.PNG

python。介绍python的基本用法和网络编程相关内容。

类型

类型字节大小
bool1
char1
short2
int4
long4
float4
double8

注: 32位机型

不同类型在计算机中以2进制来进行表示,即0和1,每一位称为bit,每8bits组成一个字节。

对于char类型来说28=2562^8 = 256,与ascii表中的字符一一对应,即每一个整数对应一个屏幕显示字符。

对于short、int和long这三种整数类型,有三种编码方式,即原码、反码和补码。

对于原码,首位作为符号位,正数首位为0,负数首位为1,例如short类型的8原码表示为 00000000 00001000, -8的表示为10000000 00001000。

对于反码,正数与原码一致,负数即为原码的负数除符号位外,其余取反,例如short类型的8反码表示为 00000000 00001000, -8的表示为11111111 11110111

对于补码,正数与原码一致,负数为正数取反+1,例如short类型的8原码表示为 00000000 00001000,-8的表示为11111111 11111000。

在计算机中使用补码来进行表示。

对于char、short、int和long,在小类型向大类型转换的过程中,使用符号位进行扩充,在大类型向小类型进行转换的过程中,仅保留低位。

对于浮点数的表示以float为例,如下图所示

捕获1.PNG

图片来自于blog.csdn.net/shuzfan/art…

用公式表为:

(1)s×2epx127×1.M(-1)^s \times 2^{epx-127} \times 1.M

其中s表示为符号位,指数部分为exp,尾数部分表示为M

因此,在整数与浮点数相互转换的过程中,需要重新进行计算。即5.0需变为1.25×221.25 \times 2^{2}, 在进行浮点数表示。

此外,在下面这种情况中,不会进行重新计算。

float f = 7.0;
short s = *(short*)&f; // 将f的比特位看成是short类型

0 10000001 11000000000000000000000按小端进行处理,即取低16位,即00000000 00000000