第二章 计算机算术

news2024/7/6 19:35:17
  • 数据表示决定了计算机所执行操作的类型,数据从一个位置传到另一个位置的方法,
    以及对存储元件的特性要求。
  • 浮点运算是非常重要的,因为它的实现决定了计算机执行复杂图形变换和图像处理的速度,
    而且浮点运算对计算的准确度也有很重要的影响。
  • 计算机如何进行加减乘除运算

2.1 数据是什么

数据是 各种各样的信息,如数字、文本、计算机程序、音乐、图像、符号、运动图像、DNA密码,等等。
实际上,信息可以是能够被计算机存储和处理的任何事物

2.1.1 位与字节

计算机内存储和处理信息的最小单位是(bit,或比特)。一个比特的值可以是0或1,
它是 不可分的

数字计算机将信息以 一组或一串比特 (称作 )的形式保存在存储器中。
例如,串01011110表示一个8位的字。

计算机通过高低电压两个等级来存储0和1的状态

目前人们还不能制造出价格便宜的、能够可靠地区分出十个不同电压等级的电路,
只能制造出便宜的、能够区分我们称之为0和1的两个电压等级的电路。

计算机通常不会每次只对一个二进制位进行操作,它们会对一组二进制位进行操作。

  • 8个二进制位为一个 字节 (byte)。

一般来讲,计算机能够 同时处理的位数越多,速度就会越快
随着计算机的速度越来越快,价格越来越低,一台计算机一次能处理的位的组数也越来越多。

2.1.2 位模式

Figure :

上图描述了如何用1位、2位、3位和4位得到一个二进制的值序列。

一个n位的字将得到$2^n$条不同的路径或位模式。

信息表示

一个n位的字将得到$2^n$不同的位模式。

一个n位的二进制字什么也表示不了; 二进制1和0组成的串 没有任何内在含义

怎样解释一个特定的二进制数只取决于程序员赋予它何种含

  • 指令: 字长为32位或更长的计算机用一个字来表示cpu能够完成的操作。
    8位或16位计算机用多个字表示一条指令。其二进制编码与功能之间的关系由设计者决定
  • 数量: 一个字或多个字都可以用来表示数量。

    数可被表示为多种格式(如BCD整数、无符号二进制整数、有符号二进制整数、二进制浮点数、
    整数复数、浮点复数、双精度整数,等等)。
  • 字符: 字符是一个叫作“字母表”的集合中的元素。
  • ISO 7位字符码或ASCII码(美国信息交换标准代码)是在计算机工业中应用
    得非常广泛的一种编码,

  • Figure :
    • 用7位表示一个字符,一共可以表示 $2^7=128$ 个不同的字符。
    • 其中有96个字符是可打印字符。
    • 其余32个是不可打印的,用于完成回车、退格、换行等特殊功能。
  • 因为计算机都是面向字节的,它通常可以通过在最高位前补0的方法将7位ASCII码
    转换为8位
    • ASCII码表的 列号作为编码的高3位行号作为编码的低4位
      • 例如: 字符"Z"二进制编码为 101 1010
    • 扩展ASCII编码
      • 最高位为0: 表示标准ASCII码
      • 最高位是1: 表示新的字符
  • 图像、声音和视觉: 数字计算机处理大量表示声音、静态图像和视频的数据。
    • 组成照片的基本单位是像素(picture element),
      每个像素的大小可以是 8 位(单色)或 24 位(三基)。
    • 视频作为 一串静态图像 依次传输,每秒发送60次(60次/s)
    • 声音通过波形信号采样

2.2 数字

2.2.1 位置计数法

按照位置记数法,一个n位的整数N的形式表示:

  • 这里$a_i (i=0,1....,n-1)$是与b的i次幂相乘的系数(此处b为基数)。

用小数点将整数部分和小数部分分开,可以对位置记数法进行扩展,使其能表示实数。

一个用基数b的位置记数法表示的数的值被定义为:.

在计算机主要关注下列四种数制

  • 十进制位置记数法不能精确地表示所有小数
  • 同样,二进制也不能精确地表示所有小数

2.3 二进制运算

二进制算术运算的规则与十进制基本相同; 唯一的区别在于,十进制算术运算以10为基数,
每位有10个数字,而二进制运算以2为基数,每位只有2个数字。

Figure :

两个位相加可能产生 进位 或 借位

二进制加法示例

二进制减法示例

  • 小数减去大数时,用大数减去小数,结果取负

二进制乘法示例


两个n位字相乘,将产生一个2n位的积

计算机不是按照上述规则进行计算的。

表示范围、精度、准确性和误差

  • 表示范围(Range): 一个数所能表示的最大值和最小值的差就是它的表示范围。MAX-MIN
  • 精度(Precision): 数的精度是数据表示得有多好的衡量标准之一
  • 准确度(Accuracy): 数的表示值与其的真实值之间的差
  • 误差(Error): 误差 = 真实值 - 测量值

2.4 有符号数

负数可以用很多种不同的方式表示,但计算机设计者选择了3种方法

  • 符号及值表示法
  • 二进制补码表示法
  • 移码表示法。

每种方法都有其各自的优点和缺点。

2.4.1 符号及值表示法

一个n位字可以表示从 $0~2^{n-1}$ 共 $2^n$ 个可能的值。
例如,一个8位的字可以表示 $0,1,2,\cdots,254,255$ 共256个数

如果要表示负数,一种方法是用它的 最高位表示符号

  • 符号位为 0表示正数
  • 符号位为 1表示负数

有符号数的值为: $(-1)^S \times M$

  • S: 符号位的值
  • M: 数值部分的值

Figure :

n位有符号的表示范围为 $-(2^{n-1}-1)$ 至 $+(2^{n-1}-1)$。

确定是0有两种表示方法;例如在8位有符号数中,0的表示:
$00000000=+0$ 以及 $10000000=-0$

2.4.2 二进制补码

补数概念

补数的定义: 是对于给定的进位制,相加后能使自然数a的位数增加1的最小的数

设 n 位 b 进制数 a,规定如下

  1. b进制数a的关于基数的补数(b的补数): $b^n - a$
  2. b进制数a的关于减基数的补数(b - 1的补数,简称减补数、侪补数): $b^n - a - 1$

在N进制下,求数a的补数的计算方式

对于N进制的自然数 $a=a_ra{r-1}a{r-2}\cdots a_1a_0$
规定 数b的各位 $b_i=(N+1)+a_i$为,称数b为 a关于 N+1 的补数

  1. 在十进制下 求数 2304671 的补数。
  • 令N=9时,自然数 2304671 对应的补数为 7695328
  • 当N=10时,自然数 2304671 对应的补数为 7695328+1=7695329
  1. 在二进制下,求1的补数只需简单地将0与1相互替换。求二补数(即补码),只需要将1的补数加1
  • 二进制的 101010110 对应的1的补数是 010101001。
  • 二进制的 101010110 对应的2补数是 010101001 + 1 = 010101010。

微处理器使用二进制补码系统表示有符号整数,因为它可以将 减法运算 转换为对 减数的补数的加法运算

例如:用7加上5的补数就可以完成运算7减去5。

一个数与它的补数之和是一个常数

在n位二进制算术中,数P的补数为Q且 $|P| + |Q| =2^n$

补码: 一个n位二进制数N的补码定义为 $2^n - N$;

当8位二进制数 $N=5=00000101$,
补码 $[N]_补=2^8-N=100000000-00000101=11111011$

首先,对于二进制数来说,只要定好了位长,
进行反码(1的补数)和补码(2的补数)
其实是一件很简单的事情。在纯二进制的表示下
只有0和1,别无他物。0111(4位)的反码就是1000,
补码就是1001(反码加1)。所谓正负、符号这些人赋予的意义都不存在,
只有二进制数和这些简单操作

在计算机中表示负数,如果用最高位表示符号这种“原码”方式,
虽然有利于人的阅读,但 不利于其本身的计算
所以系统内部就 把负数统一用“其对应正数的补码”来表示,
而正数自己不用改变。这样变换后,正数虽然形式上没有变,
但与原码相比,含义却变了,因为 符号位已经不再是符号位了,

此时的 正数和负数 都在一致的“补码编码空间”中。 。

由于原码空间到补码空间的转化,只需要对负数进行,正数是不用
发生任何变化

正数在计算机“补码编码空间”中的表示和原码一致
但这绝 不等价于 “对正数进行补码运算,结果是其本身”。

下面来看计算机中补码的运算过程:首先我们将4个数 +5,
-5,+7和 -7 以补码形式表示

  • +5 = 00000101
  • -5 = 11111011
  • +7 = 00000111
  • -7 = 11111001

下面计算 7 - 5

结果为9位二进制数100000010。如果忽略最左边一位(也叫“进位位”),
结果为00000010 = +2,这正是我们所希望看到的结果。

下面计算5 - 7

结果为11111110(进位位为0)。我们预期的结果为-2;
即$2^8 - 2=10000000-00000010 = 11111110$ 。
再一次得到了所需要的结果。

考虑n位二进制算术运算 $Z=X-Y$,我们用X加上Y的补数来完成这一运算。
Y的补码为 $2^n - Y$,则有 $Z=X+(2^n-Y)=2^n+(X-Y)$。

也就是说,我们得到了所需要的结果,X-Y,
以及位于最左边的一个并不需要的进位(即 $2^n$),而这个 进位被丢弃了。

一个数连续两次求补码得到本身

补码的特点

  1. 补码是一个真正的互补系统,因为 $+X+(-X)=0$。
  2. 补码0被表示为00…0,是唯一的。
  3. 补码的 最高位为符号位
  • 符号位为0,则该数为正
  • 符号位为1,则该数为负。

  1. n位二进制补码数的表示范围为 $-2^{n-1} ~ 2^{n-1}-1$。
    对于n=8,补码表示范围为-128~~127。共有$2^8=256$个不同的数
  2. 补码加法和减法使用同样的硬件完成,因为补码减法由被减数加上减数的补数实现。

运算溢出: 5位有符号二进制补码数的表示范围为 -16~+15

如果两个正数相加且结果大于15,会超出5位二进制补码的表示范围

如果两个负数相加且结果小于-16,也会超出5位二进制补码的表示范围

2.5 乘法简介

2.5.1 移位运算

先介绍 二进制补码数的算术移位运算

  • 二进制补码左移一位等价于将该数乘2。
    • 十进制数39的二进制表示为00100111,
      左移一位得到01001110,对应于十进制数78。
    • 有符号二进制补码数11100011表示十进制数–29,
      左移一位之后的结果是11000110,表示十进制数-58。

  • 二进制数右移一位相当于它除以2。
    • 00001100(十进制数12)右移一位得到00000110(十进制数6)。



      注意,00001101(即13)右移一位也会得到00000110,也是6;
      这是因为移出的 最低位被丢弃 了。
    • 为了在移位时保持二进制补码数的 符号不变,右移时应该复制符号位。


      考虑11100010(即-30), 右移一位同时保持符号位不变将得到11110001,
      等价于-15。

2.5.2 无符号二进制乘法

人们手动计算乘法过程

数字计算机并没有实现上面的算法,因为这种算法要求计算机存储n个部分积,
然后将它们同时相加。

一种更好的技术是每得到一个部分积时就做一次加法。

一个计算两个n位无符号二进制数相乘的算法。

算法示例

2.5.3 快速乘法

通过 移位和加法 实现的乘法速度很慢。实际的计算机采用了多种方法加快乘法运算的速度。
例如,构造专门的 逻辑阵列直接得到两个数的积 而不必对操作数移位。

与负数相乘

Figure :

  1. 使用移位和加法等速度相对较快的操作以避免使用乘法。考虑P乘以10和P乘以9
  • $10P=2\times (2 \times 2 \times P + P)$: 即将P左移两次,加上P,再将和左移一次。
  • $9P=2\times 2 \times 2 \times P + P$: 即将P左移三次,加上P得到结果。

  1. 借组查找表实现,将两个数相乘所有可能的积都保存在一个只读存储器内,
    只需要进行简单查找表就可以确定乘积。
  • 占用空间太大
  • 减少查找表的大小
  • 假设要计算两个16位数A与B的乘积。
  • 可以将16位数A拆分为两个8位数$A_u$和$A_l$,
  • 如果A=1111000010101010,则$A_u=11110000$,$A_l=10101010$。
  • A可被表示为$A_u x 256 + A$, 同理B也可以这样表示

  • Figure :

2.5.4 除法

二进制除法和十进制出发计算类似

计算机实现的除法算法--恢复余数除法

唯一需要修改的就是除数与部分被除数的比较方法。
人们用心算进行比较,而计算机必须做减法并检测结果的符号位。
如果减法的 结果为正,则商1
但若 结果为负,则应商О 并将 部分被除数与除数相加
将其 恢复为原先的值

Figure :

恢复余数除法示例

Figure :

计算机实现的除法算法--不恢复余数除法

部分被除数减去除数之后,将检测新的部分被除数的符号位。

  • 若为 ,则商左移1位,商的最低位补0,并将部分被除数 加上 除数的二分之一
  • 若为  ,则商左移1位,商的最低位补1,并将部分被除数 减去 除数的二分之一

Figure :

不恢复余数除法示例

2.6 浮点数

浮点数即为实数,称为浮点数的原因是小数点在数中 位置不固定

浮点数存储分成 两部分:数值和小数点在数值中的位置

使用科学计数法来表示浮点数,科学计数法的好处是可以表示很大或者很小的数。

  • 在十进制运算中,科学计数法表示的数字被写成 $尾数×10^{指数}$ 的形式,
  • 二进制浮点数则被表示为 $尾数×2^{指数}$ 的形式。

其中 尾数表示值指数表示小数点在数值中的位置

计算机中浮点数运算结果 一般是不确定的。不同芯片对浮点数的出来可能是不同的。

由于浮点数被定义为两个值的积,浮点数的表示并不唯一,需要对其进行规格化。

规格化

为了使表示法的固定部分统一,科学计数法(用于十进制)和浮点表示法(用于二进制)
都在 小数点左边使用了唯一的非零数码,这称为 规范化 。
十进制系统中的数码可能是1~9,而二进制只能是1.

偏置指数(余码系统):指数使用n位表示;给指数加上一个常熟,使得最小负指数为0

  • 这个常数为: $2^{n-1} - 1$

下图给出了 4位指数 的偏置指数对应关系。

2.6.1 IEEE浮点数

IEEE 754浮点数标准提供了3种浮点数表示

  • 32位单精度浮点数
  • 64位双精度浮点数
  • 128位四精度浮点数

一个32位IEEE 754单精度浮点数可以被表示为下面的二进制位串:
S EEEEEEEE 1.MMMMMMMMMMMMMMMMMMMMMMM

  • S为符号位,指明这个数是正数还是负数
  • E为8位偏置指数,指出了小数点的位置,表示尾数扩大或缩小 $2^E$倍
  • M是23位小数尾数。
    • 尾数最前的那个1被省掉了

32位IEEE754浮点数结构

  • S位为符号位,决定了数的符号。若S=0,该数为正数,若S=1,则该数为负
  • 指数E将浮点数的尾数扩大或缩小2的E次方倍,并且它的偏置值为127。
  • 非零的IEEE 754标准的浮点数可表示为: $X=(-1)^S\times 2^{E-B}\times 1.F$
    • S: 符号位
    • E: 偏置值为B的指数
    • F: 尾数的小数部分(实际为1.F)
  • 浮点数0表示为: $S=0 E=0 F=0000...000$

IEEE754浮点数格式

  • 非数(Not a Number, NaN): 是IEEE 754标准的一个重要概念。
    NaN是IEEE 754标准提供的一个专门符号,
    代表IEEE 754标准格式所 不能表示的数
    NaN 的使用和定义是与系统相关的,
    可以用NaN来表示所需要表达的任何信息。

Figure :

十进制转为二进制浮点数示例

二进制浮点数转为十进制数

浮点数的特点

接近0的浮点数: 指数为2位;;尾数为2位的浮点数系统

Figure :

浮点数0附近有一块 禁止区,其中的浮点数都是 非规格化的,
因此无法被表示为IEEE标准格式。这个数的指数和起始位都是0的区域,也可用来表示浮点数。
不过,这些数都是非规格化的,其 精度比规格化数的精度低,会导致 渐进式下溢

IEEE标准的其他特点

  • 缺省的舍入应该 向最近的值舍入

    如果一个数与两个最近的可表示的值的 距离相等,则选择 最低位为0的作为舍入值;
    也就是说, 向偶数值舍入

    标准要求必须提供(向0舍入,向正无穷大舍入,向负无穷大舍入)3种舍入模式。
     
  • 规定了4种比较结果,分别是 等于小于大于 和 无序
    • 无序,用于一个操作数是NaN数的情形。
  • 规定了5种异常。异常或中断是一种强制计算机进行专门处理机制。

IEEE标准定义的异常有:

  • 操作数不合法——当程序员试图使用一些不合法的操作数
    (如 NaN 数,与无穷大数相加或相减时,或求负数的平方根)时,会引发这种异常。

     
  • 除数为0——当除数为0(因为结果为无穷大)时,会引发这种异常。
     
  • 上溢——当结果比最大浮点数还大时会引发这种异常。

    处理上溢的方法有 终止计算 或 饱和运算(用最大值作为结果)等。

     
  • 下溢——当结果比最小浮点数还小时会引发这种异常;
  • 结果不准确——当某个操作产生 舍入错误 时会引发这种异常。

2.7 浮点数运算

浮点数时不能直接进行加法运算。

浮点数加法的计算步骤: 先对阶数,尾数相加,结果规格化。

第1步,找出指数较小的那个数。
第2步,使两个数的指数相同。对于指数小的那个数,指数加几,就将尾数右移几位。
第3步,尾数相加(或相减)。
第4步,如果有必要,将结果规格化(后规格化)。

Figure :

  1. 因为 指数 有时与 尾数 位于同一个字中,在加法过程开始之前必须将它们分离开(解压缩)。
  2. 如果两个指数的差大于p+1,这里p为尾数的位数,较小的那个数由于太小而无法影响较大的数,
    结果实际上就等于较大的那个数。
  3. 结果规格化时会检查指数,看它是否比最小指数小或比最大指数大,
    以分别检测指数下溢或上溢。指数下溢会导致结果为0,
    而指数上溢会造成错误,可能会要求操作系统介入处理。

舍入与截断误差

因为浮点运算可能引起尾数位数的增加,因此需要能够保持尾数位数不变的方法。
最简单的技术叫作截断(truncation)。

截断会产生 诱导误差(induced error)(即误差是由施加在数上的操作计算所引起的),
诱导误差是偏置的,因为 截断后的数总是比截断前的小

舍入(rounding)是一种更好的减少数的位数的技术。
如果丢弃的位的值 大于 剩余数 最低位 的一半,则将剩余数的最低位加1。

  • 舍入更加精确并会引起 非偏置的误差
  • 截断总会使结果变小,带来系统性误差,
  • 舍入的主要不足在于它需要对结果进行一个 额外的算术操作

舍入机制

  • 最简单的舍入机制是截断或向0舍入。
  • “向最近的数舍入”方法,会选择 距离该数最近 的那个浮点数作为结果。
  • “向正或负无穷大舍入”方法,会选择 正或负无穷大方向上最近 的有效浮点数作为结果。

当要舍入的数位于两个连续浮点数的正中时,IEEE舍入机制会选择最低位为0的点(即向偶数舍入)。

2.8 浮点数与程序员

整数操作时精确、可重复的,浮点数操作是不精确的。

考虑表达式 $z = x^2-y^2$,x、y、z都是实数。
可以将表达式视作 $x^2-y^2$ 或 $(x+y)(x-y)$ 计算,整数运算得到相同结果,
但浮点数运算可能得到不同结果

IEEE要求加、减、乘和除运算结果能够 精确计算,并用向偶数舍入的方法将结果舍入为最近的浮点数。

2.8.1 误差传播

舍入造成的生成误差(generated error)或通过计算链传播的传播误差(propagated error)
都会被引人浮点运算。

2.8.2 生成数学函数

考虑使用泰勒公式来求一些高级函数在某点的值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/30890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高通平台开发系列讲解(mm-camera篇)MM-CAMERA框架

文章目录 一、Camera软件位置1.1、开源代码1.2、专有源码二、摄像头前端(Camera Frontend)2.1、整体框架2.2、 Camera HAL与mm-camera交互沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇章主要介绍高通平台mm-camera代码框架。 一、Camera软件位置 QTI 针对 An…

Flink 状态编程

状态编程有状态算子状态的管理状态的分类按键分区状态(Keyed State)支持的结构类型代码实现状态生存时间(TTL)算子状态(Operator State)基本概念和特点状态类型代码实现广播状态(Broadcast Stat…

DFP 数据转发协议应用实例 .与其它厂商 LoRA 设备匹配

DFP 数据转发协议应用实例 5.与其它厂商 LoRA 设备匹配 DFP 是什么? 稳控科技编写的一套数据转发规则, 取自“自由转发协议 FFP(Free Forward Protocol)” ,或者 DFP(DoubleF Protocol)&#xf…

【优化求解】粒子群算法求解仓库成本控制优化问题【含Matlab源码 1577期】

⛄一、粒子群算法简介 1 引言 自然界中的鸟群和鱼群的群体行为一直是科学家的研究兴趣所在。生物学家Craig Reynolds在1987年提出了一个非常有影响的鸟群聚集模型,在他的仿真中,每一个个体都遵循:避免与邻域个体相撞:匹配邻域个体…

基于JAVA的网上图书商城参考【数据库设计、源码、开题报告】

数据库脚本下载地址: https://download.csdn.net/download/itrjxxs_com/86427643 主要使用技术 Struts2HibernateJSPCSSJSMysql 功能介绍 系统有五类用户,分别是:会员用户,商品管理员,订单管理员,会员管…

【MSSQL】SQL SERVER导入中文乱码问题解决

公司最近承接了一个项目,甲方现使用旧版SiteServer框架(以下简称“SiteCMS”)作为门户网站,使用的数据源是SQL Server。 现在需要对SiteCMS进行升级,在升级时数据库和数据库结构也需要同时更新,其中数据库…

硬件顶配、数字先行,路特斯重塑「智能座舱」

诚然,在车联网的高度普及、5G技术的铺开以及汽车产业融合的大势下,传统单一驾驶与乘坐功能的汽车座舱正在被颠覆,更高级、更智能的“智能座舱”应运而生。 从行业发展态势来看,大屏多屏已经是智能汽车的基本操作,智能…

【网络安全】——逻辑漏洞之短信轰炸漏洞

作者名:Demo不是emo 主页面链接:主页传送门创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷座右…

程序的环境

文章目录[TOC](文章目录)前言一、程序环境分类二、翻译环境1.总体流程2.编译2.1预编译2.2编译2.3汇编3.链接三、运行环境总结前言 我们平时在编译器上编写代码,然后运行代码,最后得到程序的运行结果。这让我们不经好奇:程序在电脑中到底经过…

Java常用设计模式

前言 设计模式是对大家实际工作中写的各种代码进行高层次抽象的总结,其中最出名的当属 Gang of Four (GoF)的分类了,他们将设计模式分类为 23 种经典的模式,根据用途我们又可以分为三大类,分别为创建型模式、结构型模式和行为型模…

物联网漏洞利用整体情况

物联网 威胁分析漏洞篇物联网威胁分析—漏洞篇 引言 本章将从漏洞利用角度对物联网威胁进行分析。首先,我们分析了 NVD和 Exploit-DB中的物联网 年度漏洞及利用 1 变化趋势;之后统计了绿盟威胁捕获系统捕获到的物联网漏洞利用的整体情况;最…

【算法笔记(五)】排序算法

算法笔记(五) 排序算法算法笔记(五)前言一、冒泡排序1.什么是冒泡排序2.实际需求3.代码实现二、选择排序1.什么是选择排序2.需求规则三.插入排序1.了解插入排序2.需求规则3.代码实现四.希尔排序1.什么是希尔排序2.需求规则3.代码实现五.快速排序1.什么是快速排序2.需求规则3.代…

静态代理和动态代理

静态代理和动态代理代理模式代理模式的主要优缺点:优点:缺点:代理模式的编写要点静态代理实现步骤静态代理方式的弊端动态代理:动态代理的实现步骤:代理模式 代理模式的定义:由于某些原因需要给某对象提供一个代理以控制对该对象的…

Javascript 基础知识学习

Javascript 基础知识学习 参考自:https://www.w3cschool.cn/javascript/ javascript 简介 JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。 JavaScri…

计算流体力学的基本方法简介(有限差分法、有限元法、有限体积法)

1、有限差分法: 原理,用差商代替微商; 优缺点: 2、有限元方法: 有限元剖分方法: 特点: 3、有限体积法: 两种方式,格心格式和格点格式: 特点:

基于html的美食网站——速水果介绍8页(HTML+CSS+JavaScript) 带论文

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 家精彩专栏推荐 美食网页介绍 | 甜品蛋糕 | 地方美食小吃文化 | 餐饮文化 | 等网站的设计与制作 | 美食主题网站 | HTML期末大学生网页设计作业 HTML&…

SpringCloud全系列知识(1)——初识微服务和注册中心

SpringCloud(微服务)相关笔记 一 基础框架图 1.微服务技术栈 2.技术栈分类 二 认识微服务 1.单体架构 将业务功能集中在一个项目中,打成一个包部署。 优点:架构简单,部署成本低。 缺点:耦合度高 2.分布式架构 根据业务功能…

最具影响力的15颗国外开放数据气象卫星介绍

1.热带降雨测量任务(TRMM) TRMM 是 NASA 和日本宇宙航空研究开发机构 (以前称日本国家空间发展署) 的合作项目,是 NASA 地球科学计划中的航天任务。日本提供运载火箭和测雨雷达,而由 NASA 提供卫星、4台仪器和卫星运行系统。 TRMM 卫星是三轴稳定的&…

深度强化学习中利用Q-Learngin和期望Sarsa算法确定机器人最优策略实战(超详细 附源码)

需要源码和环境搭建请点赞关注收藏后评论区留下QQ~~~ 一、Q-Learning算法 Q-Learning算法中动作值函数Q的更新方向是最优动作值函数q,而与Agent所遵循的行为策略无关,在评估动作值函数Q时,更新目标为最优动作值函数q的直接近似,故…

深入理解java虚拟机:虚拟机类加载机制(2)

文章目录3.类加载器3.1 类与类加载器3.2 双亲委派模型3.3 破坏双亲委派模型3.类加载器 虚拟机设计团队把类加载阶段中的通过一个类的全限定名来获取描述此类的二进制字节流这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个…