考研 | 组成原理【第二章】数据的表示和运算

news2024/10/7 7:28:45

考研 | 组成原理【第二章】数据的表示和运算

文章目录

  • 考研 | 组成原理【第二章】数据的表示和运算
  • I. 数制与编码
    • a. 进位计数制及其相互转换
    • b. BCD码
      • 1. 8421码
      • 2. 余3码
      • 3. 2421码
    • c. 无符号整数表示和运算
      • 1. 表示
      • 2. 运算
    • d. 带符号整数的表示和运算
      • 1. 原码
      • 2. 反码
      • 3. 补码
      • 4. 移码
      • 5. 原反补移码特性对比
    • e. 定点小数的表示和运算
      • 1. 定点小数 v.s. 定点整数
      • 2. 定点小数的加法运算
      • 3. 定点小数的减法运算
  • II. 运算方法和运算电路
    • a. 基本运算部件
      • 1. 逻辑运算
      • 2. 一位全加器
      • 3. 串行加法器
      • 4. 串行进位的并行加法器
      • 5. 并行进位的并行加法器
      • 6. 补码加减法器
      • 7. 标志位生成
    • b. 定点数的移位运算
      • 1. 算数移位
      • 2. 逻辑移位
      • 3. 循环移位
    • c. 定点小数的乘法运算
      • 1. 原码乘法运算
      • 2. 补码乘法运算
    • d. 定点小数的除法运算
      • 1. 原码除法运算
        • 1-1. 恢复余数法
        • 1-2. 加减交替法(不恢复余数法)
      • 2. 补码除法运算
    • e. C语言中的证书类型及类型转换
    • f. 数据的存储和排列
  • III. 浮点数的表示与运算
    • a. 浮点数的表示
    • b. 浮点数的加减运算

I. 数制与编码

a. 进位计数制及其相互转换

  1. 整数部份十进制转二进制: 留意高低位排序
    在这里插入图片描述
  2. 小数部分十进制转二进制: 留意高地位排序在这里插入图片描述

b. BCD码

BCD码: 就是 Binary-Coded Decimal, 即二进制编码的十进制数

1. 8421码

8421码: 就是对于 0~9 每个数字用 4 位二进制数来进行一一表示;其中 8421 码也叫有权码,从左往右数,第一个 1 权值为 8 ;第二个 1 权值为 4;第三个 1 权值为 2;第四个 1 权值为 1;
在这里插入图片描述

十进制5+8=13
二进制0101+1000=00010011

2. 余3码

余3码: 属于无权码,它是在 8421码 的基础上,每位加 ( 3 ) 10 (3)_{10} (3)10,即二进制 ( 0011 ) 2 (0011)_2 (0011)2
在这里插入图片描述

3. 2421码

2421码: 同 8421码,都属于有权码,但是与 8421码 不同,从右往左数,每个 1 的权值分别为 2421
在这里插入图片描述
 

c. 无符号整数表示和运算

1. 表示

在这里插入图片描述

  1. 全部二进制位都是数值位, 没有符号位, 第 i i i 位的位权是 2 i − 1 2^{i-1} 2i1
  2. n n n bit无符号整数表示范围 0 ∼ 2 n − 1 0\sim2^{n}-1 02n1, 超出则溢出
  3. 最小数是全 0; 最大数是全 1

2. 运算

  1. 加法: 从 最低位 开始, 按位相加, 并往更高位进位
  2. 减法:
    1. “被减数” 不变, “减数” 全部位按位取反, 末位+1(即变补码), 减法变加法
    2. 从 最低位 开始, 按位相加, 并往 更高位 进位.
       

d. 带符号整数的表示和运算

1. 原码

对于 n + 1 n+1 n+1 位机器字长:

  1. 最高位为符号位, “0/1” 对应 “正负”; 剩余位数为数值位, 表示真值的绝对值
  2. 表示范围 − ( 2 n − 1 ) ≤ x ≤ 2 n − 1 -(2^n-1) \leq x \leq 2^n-1 (2n1)x2n1
  3. 真值 0两种形式, [ + 0 ] 原 = 0 , 00000000 ; [ − 0 ] 原 = 1 , 00000000 [+0]_原=0,00000000; [-0]_原=1,00000000 [+0]=0,00000000;[0]=1,00000000

缺点: 符号位不能参与运算, 需要设计复杂的硬件电路才能处理
在这里插入图片描述

2. 反码

在 原码 的基础上: 正数不变; 负数 符号位不变数值位取反
在这里插入图片描述

3. 补码

  1. 机器的方式: 原 → 反 → 补 (反码转补码: 正数不变, 负数末位+1)
    在这里插入图片描述

  2. 人工手算的方式: 原 → 补
    正数不变; 负数从右往左找到第一个1,这个1左边的所有数值位按位取反;
    补码 转 原码 也是这种方式, 正数不变, 负数从右往左找到第一个 1, 这个 1 左边的所有数值位按位取反
    在这里插入图片描述

  3. 这里记录一个我自己总结的直接从负数补码算真值的方法:
    见上图右下角 蓝色部分

    1. 从右往左找到第一个1
    2. 这个 1 左边的所有 0 对应的二进制权值 + 这个 1 对应的二进制权值 = 真值
  4. 补码加法: 从最低位开始, 按位相加(包括符号位), 并往更高位进位

  5. 补码减法:

    1. “被减数” 不变, “减数” 全部按位取反(包括符号位)末位+1
    2. 减法变加法, 从最低位开始, 按位相加, 并往更高位进位

4. 移码

移码: 在补码的基础上, 符号位取反; 注意: 只能表示正数
在这里插入图片描述

5. 原反补移码特性对比

  1. 转换关系:
    在这里插入图片描述

  2. 表示范围:
    在这里插入图片描述

  3. 用几种码来表示整数:
    在这里插入图片描述

e. 定点小数的表示和运算

1. 定点小数 v.s. 定点整数

注意: 定点小数第一位是符号位, 即小数点前一位; 定点小数不能用移码表示
在这里插入图片描述

2. 定点小数的加法运算

同定点整数加法: 从最低位开始, 按位相加(包括符号位), 并往更高位进位;
在这里插入图片描述

3. 定点小数的减法运算

同定点整数减法: "被减数"不变, 全部位按位取反, 末位+1, 减法变加法
在这里插入图片描述


II. 运算方法和运算电路

a. 基本运算部件

1. 逻辑运算

  • 与 | 或 | 非
    在这里插入图片描述

  • 与非 | 或非 | 异非 | 同或
    在这里插入图片描述

  • 用 与或非 组合实现异或门
    在这里插入图片描述

  • 简化逻辑表达式

    • 优先级: 与 > 或
    • 分配律: A ( C + D ) = A C + A D A(C+D)=AC+AD A(C+D)=AC+AD
    • 结合律: A B C = A ( B C ) ABC=A(BC) ABC=A(BC); A + B + C = A + ( B + C ) A+B+C=A+(B+C) A+B+C=A+(B+C)
    • 反演律: A + B ‾ = A ‾ ⋅ B ‾ \overline{A+B}=\overline{A}\cdot\overline{B} A+B=AB; A ⋅ B ‾ = A ‾ + B ‾ \overline{A\cdot B}=\overline{A}+\overline{B} AB=A+B

2. 一位全加器

一位全加器实现的功能是 一个二进制位 上的加法, 不仅要结合当前两个加数的二进制位, 还要结合从前一个二进制位带上来的 进位.

  • 加法结果 S i S_i Si: 看输入(两个加数的二进制位, 前一位的进位) 中有偶数个 1 还是 奇数个 1
    S i = A i ⊕ B i ⊕ C i − 1 S_i = A_i \oplus B_i \oplus C_{i-1} Si=AiBiCi1
  • 向高位的进位 C i C_i Ci: 如果输入中至少有两个 1, 进位就是 1
    C i = A i B i + ( A i ⊕ B i ) C i − 1 C_i = A_iB_i+(A_i\oplus B_i)C_{i-1} Ci=AiBi+(AiBi)Ci1
    第一项代表的是 两个加数的二进制位 都是1
    第二项代表两个本位中只有一个 1 , 且来自低位的进位是 1

用逻辑电路图表示:

3. 串行加法器

串行加法器: 只由一个 一位全加器 构成, 两个加数 按位 一个一个二进制位送入 全加器 里面进行运算, 这种就是 串行. 如果操作数长 n n n 位, 加法器就要进行 n n n 次运算.

4. 串行进位的并行加法器

串行进位的并行加法器: 把 n n n 个 全加器 串连起来, 就可以得到两个 n n n 位二进制数相加的结果
在这里插入图片描述
从图中看得出来, 缺点很明显, 由于每一级的输入除了两个加数自身的二进制数以外, 还要包括上一位的进位, 因此每一级的加法都得依赖上一级.

5. 并行进位的并行加法器

并行进位的并行加法器 其实就是在 串行的基础上耍了一些trick. 前面提到, 由于受限于每一级的进位 C i − 1 C_{i-1} Ci1, 因此我们对 C i C_{i} Ci 进行展开:
C i = A i B i + ( A i ⊕ B i ) C i − 1 C i = A i B i + ( A i ⊕ B i ) ( A i − 1 B i − 1 + ( A i − 1 ⊕ B i − 1 ) C i − 2 ) C i = A i B i + ( A i ⊕ B i ) ( A i − 1 B i − 1 + ( A i − 1 ⊕ B i − 1 ) ( A i − 2 B i − 2 + ( A i − 2 ⊕ B i − 2 ) C i − 3 ) ) \begin{aligned} &C_{i}=A_{i} B_{i}+\left(A_{i} \oplus B_{i}\right) C_{i-1} \\ &C_{i}=A_{i} B_{i}+\left(A_{i} \oplus B_{i}\right)\left(A_{i-1} B_{i-1}+\left(A_{i-1} \oplus B_{i-1}\right) C_{i-2}\right) \\ &C_{i}=A_{i} B_{i}+\left(A_{i} \oplus B_{i}\right)\left(A_{i-1} B_{i-1}+\left(A_{i-1} \oplus B_{i-1}\right)\left(A_{i-2} B_{i-2}+\left(A_{i-2} \oplus B_{i-2}\right) C_{i-3}\right)\right) \end{aligned} Ci=AiBi+(AiBi)Ci1Ci=AiBi+(AiBi)(Ai1Bi1+(Ai1Bi1)Ci2)Ci=AiBi+(AiBi)(Ai1Bi1+(Ai1Bi1)(Ai2Bi2+(Ai2Bi2)Ci3))
当展开到 C 0 C_0 C0 的时候, 整体的 C i C_i Ci 就可以直接确定, 因为每一位的 A i A_i Ai B i B_i Bi 都已经, C i C_i Ci 也已知, 那么就可以直接算得任意一步的进位 C i C_i Ci
我们再让 G i = A i B i G_i=A_iB_i Gi=AiBi P i = A i ⊕ B i P_i=A_i\oplus B_i Pi=AiBi
C i = A i B i + ( A i ⊕ B i ) C i − 1 = G i + P i C i − 1 C 1 = G 1 + P 1 C 0 C 2 = G 2 + P 2 C 1 = G 2 + P 2 G 1 + P 2 P 1 C 0 C 3 = G 3 + P 3 C 2 = G 3 + P 3 G 2 + P 3 P 2 G 1 + P 3 P 2 P 1 C 0 C 4 = G 4 + P 4 C 3 = G 4 + P 4 G 3 + P 4 P 3 G 2 + P 4 P 3 P 2 G 1 + P 4 P 3 P 2 P 1 C 0 \begin{aligned} &C_{i}=A_{i} B_{i}+\left(A_{i} \oplus B_{i}\right) C_{i-1}=G_{i}+P_{i} C_{i-1} \\ &C_{1}=G_{1}+P_{1} C_{0} \\ &C_{2}=G_{2}+P_{2} C_{1}=G_{2}+P_{2} G_{1}+P_{2} P_{1} C_{0} \\ &C_{3}=G_{3}+P_{3} C_{2}=G_{3}+P_{3} G_{2}+P_{3} P_{2} G_{1}+P_{3} P_{2} P_{1} C_{0} \\ &C_{4}=G_{4}+P_{4} C_{3}=G_{4}+P_{4} G_{3}+P_{4} P_{3} G_{2}+P_{4} P_{3} P_{2} G_{1}+P_{4} P_{3} P_{2} P_{1} C_{0} \end{aligned} Ci=AiBi+(AiBi)Ci1=Gi+PiCi1C1=G1+P1C0C2=G2+P2C1=G2+P2G1+P2P1C0C3=G3+P3C2=G3+P3G2+P3P2G1+P3P2P1C0C4=G4+P4C3=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0
画成电路图:
在这里插入图片描述

6. 补码加减法器

  1. XY分别对应两个加数或者被减数和减数
  2. 设置 s u b sub sub, 如果是减法就设置为 1, 如果是加法设置为 0
  3. s u b sub sub 为0, 即加法的时候, Y 直接通过 多路选择器 进入加法器
  4. s u b sub sub 为1:
    1. Y 会先经过 非门, 对Y上的所有位进行按位取反
    2. 同时, s u b sub sub 作为 1, 也会作为 C i − 1 C_{i-1} Ci1 传进加法器中
    3. 对 Y 所有位按位取反再 +1, 即可完成 X-Y 到 X+(-Y) 的操作
      在这里插入图片描述

7. 标志位生成

在这里插入图片描述
在这里插入图片描述

 

b. 定点数的移位运算

1. 算数移位

在这里插入图片描述

2. 逻辑移位

  • 逻辑右移: 高位补0, 低位舍弃
  • 逻辑左移: 低位补0, 高位舍弃

3. 循环移位

在这里插入图片描述

c. 定点小数的乘法运算

1. 原码乘法运算

  • 符号位单独处理, 符号位 = x s ⊕ y s =x_s\oplus y_s =xsys
  • 数值位取绝对值进行乘法运算:
  1. 先回顾几个运算器的构件:
    在这里插入图片描述
  2. 我们现在要计算: [ x ] 原 = 1.1101 , [ y ] 原 = 0.1011 , x ⋅ y [x]_原=1.1101, [y]_原=0.1011, x\cdot y [x]=1.1101,[y]=0.1011,xy
  3. 先将被乘数, 即 x, 符号位变成 0, 取绝对值, 放进 通用寄存器 X X X
    乘数, 即 y, 符号位也同样取 0, 取绝对值, 放进 乘商寄存器 M Q MQ MQ
    累加器 A C C ACC ACC 全置 0;
    在这里插入图片描述
  4. 从右往左看 乘商寄存器 M Q MQ MQ, 第一个是 1 1 1
    那么我们就往 累加器 A C C ACC ACC 里加上 通用寄存器 X X X 里的 被乘数 X X X
    然后 累加器 A C C ACC ACC 和 乘商寄存器 M Q MQ MQ 一起 逻辑右移: 高位补 0 0 0, 低位舍弃
  5. 然后重复第四步, 还是 1 1 1, 于是我们对 累加器 A C C ACC ACC 先加 通用寄存器 X X X 里的被乘数, 然后 A C C ACC ACC M Q MQ MQ 一起逻辑右移:
  6. 继续重复第四步, 但是这一次是 0 0 0, 如果遇到 0 0 0, 累加器 A C C ACC ACC 就什么都不加, 直接和 乘商寄存器 M Q MQ MQ 逻辑右移
  7. 一直重复第四步, 直到原本放 乘数 的 乘商寄存器 M Q MQ MQ 里的符号位移到最后一个位, 就可以停止了
    这个时候, 还需要把 累加器 A C C ACC ACC 的第一位, 即符号位修改为一开始的 符号位 = x s ⊕ y s =x_s\oplus y_s =xsys
    然后 累加器 A C C ACC ACC 和 乘商寄存器 M Q MQ MQ 组合起来的数字就是最终乘积的结果
    在这里插入图片描述
  8. 将上述过程简化成手算过程就是这样:
    在这里插入图片描述

2. 补码乘法运算

  • 补码乘法 和 原码乘法 类似, 但也有不同:
    在这里插入图片描述
  • 在 补码乘法 的运算中:
    • 所有寄存器的机器字长统一 n + 2 n+2 n+2 位, 采用双符号位表示补码.
    • 乘商寄存器 M Q MQ MQ 中, 用 单符号位表示 乘数 补码, 最后一位 机器位 放辅助位, 初始为0
    • 辅助位 - M Q MQ MQ中最低位 = 1, ( A C C ) + [ x ] 补 (ACC)+[x]_补 (ACC)+[x]
      辅助位 - M Q MQ MQ中最低位 = 0, ( A C C ) + 0 (ACC)+0 (ACC)+0
      辅助位 - M Q MQ MQ中最低位 = -1, ( A C C ) + [ − x ] 补 (ACC)+[-x]_补 (ACC)+[x]
    • 加法结束后, A C C ACC ACC M Q MQ MQ 一起 算数右移
    • 一直右移到 原来放在乘商寄存器 M Q MQ MQ的乘数的符号位 后, 还得继续进行一次加法
    • 最后 累加器 A C C ACC ACC 和 乘商寄存器 M Q MQ MQ 共同构成最后的乘积(带符号位)
      在这里插入图片描述

d. 定点小数的除法运算

1. 原码除法运算

1-1. 恢复余数法

  • 通用寄存器 X X X 存放 除数
    累加器 A C C ACC ACC 存放 被除数
    乘商寄存器 M Q MQ MQ 存放 结果商
  • 符号位单独处理 x s ⊕ y s x_s \oplus y_s xsys
  • 将对应 除数, 被除数 放入 通用寄存器 X X X, 累加器 A C C ACC ACC 中, 乘商寄存器 M Q MQ MQ置0
    在这里插入图片描述
  1. 每轮直接无脑上商 1 1 1
    在这里插入图片描述
  2. 求余数: ( A C C ) − ( 除 数 ) → A C C (ACC)-(除数)\rightarrow ACC (ACC)()ACC
    在这里插入图片描述
  3. 发现 A C C ACC ACC 中, 余数为负数, 商改为 0 0 0
    在这里插入图片描述
  4. 商改为 0 0 0 后, A C C ACC ACC 也应该改回来, 所以 ( A C C ) + ( 除 数 ) → A C C (ACC)+(除数)\rightarrow ACC (ACC)+()ACC, 这一步就叫 恢复余数
    在这里插入图片描述
  5. 然后 A C C ACC ACC M Q MQ MQ 总体 逻辑左移
    在这里插入图片描述
  6. 重复 1~5 步, 直至 乘商寄存器 M Q MQ MQ 中所有机器位的都有确定的商
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  7. 最后得到结果
    在这里插入图片描述
  8. 总结: 看流程图
    在这里插入图片描述

1-2. 加减交替法(不恢复余数法)

  • 核心思想:
    在这里插入图片描述
  • 总体流程:
    在这里插入图片描述
    在这里插入图片描述

2. 补码除法运算

  • 精髓:
    在这里插入图片描述
  • 有一道经典的题:
    在这里插入图片描述
    • 这道题如果不深究, 可以直接选 B B B, 应为补码的乘除法, 重点的一步就是 符号位 参与运算
    • 如果深究的话:
      • 什么叫够减: 被减数的 绝对值 大于 减数 绝对值
      • 同号相除:
        求余数够减不够减
        减法除数和余数同号1除数和余数异号0
      • 异号相处:
        求余数够减不够减
        加法除数和余数异号0除数和余数同号1
      • 如: 被除数 -3, 除数 -2 和 +2, 够减
        • − 3 与 − 2 同 号 ⇒ − 3 − ( − 2 ) = − 1 ⇒ 余 数 和 除 数 同 号 ⇒ 商 1 -3 与 -2 同号 \Rightarrow -3 - (-2) = -1 \Rightarrow 余数和除数同号 \Rightarrow 商1 323(2)=11
        • − 3 与 + 2 异 号 ⇒ − 3 + ( + 2 ) = − 1 ⇒ 余 数 和 除 数 异 号 ⇒ 商 0 -3 与 +2 异号 \Rightarrow -3+(+2)=-1 \Rightarrow 余数和除数异号 \Rightarrow 商0 3+23+(+2)=10

e. C语言中的证书类型及类型转换

f. 数据的存储和排列


III. 浮点数的表示与运算

a. 浮点数的表示

b. 浮点数的加减运算

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

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

相关文章

多肽标签VSV-G Tag、YTDIEMNRLGK

VSV-G肽是一种源自水泡性口腔炎病毒糖蛋白的11个氨基酸的肽。编号: 191225 中文名称: 多肽标签VSV-G Tag 英文名: VSV-G Tag 英文同义词: VSV tag 单字母: H2N-YTDIEMNRLGK-OH 三字母: H2N-Tyr-Thr-Asp-Ile-Glu-Met-Asn-Arg-Leu-Gly-Lys-COOH 氨基酸个数: 11 分子式: C57H94N16…

【HMS Core】ScanPlus和Push推送库出现冲突该如何解决?

1、问题描述 项目中之前是同时集成了华为统一扫码服务SDK和华为推送SDK,这两天升级华为推送版本至6.3.0.304时发现这两个库出现了冲突, 这两个库的依赖版本情况如下所示: implementation com.huawei.hms:scanplus:2.7.0.301 implementatio…

[附源码]java毕业设计小型医院药品及门诊管理

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

《垃圾回收算法手册 自动内存管理的艺术》——内存分配(笔记)

文章目录七、内存分配7.1 顺序分配7.2 空闲链表分配7.2.1 首次适应分配7.2.2 循环首次适应分配7.2.3 最佳适应分配7.2.4空闲链表分配的加速快速适应分配(fast-fit allocation)位图适应分配(bitmapped-fits allocation)7.3 内存碎片化7.4 分区适应分配7.4.1 内存碎片7.4.2 空间大…

LINUX SECCOMP模块介绍

SECCOMP介绍 Seccomp是 "secure computing" 的 缩写。Linux内核2.6.12版本(2005年3月8日)引入。是linux一个安全模块,用于限制程序系统调用;当时如果使用了SECCOMP只允许4个系统调用: read,wri…

Flutter组件--Padding和AnimatedPadding

示意图: Padding介绍 在应用程序中有许多widget 时,这个时候画面常常会变得很拥挤,这个时候如果想要在widget之间来保留一些间距,那就用 Padding 为什么使用 Padding 而不使用 Container.padding 属性的 Container? Container 是将许多更…

RabbitMQ-08 不公平分发与预取值

不公平分发 我们之前演示的所有示例都遵循轮询分发,也就是多个消费者时交替消费队列消息。可以想一下我们之前的一个例子。Worker02处理消息只需要1s但是Worker03处理一个消息却用30s的情况。那么这个时候我们就要使用到不公平分发。简而言之就是能者多劳。 需要在消…

亚马逊刷单测评的正确方法是什么样的?

做亚马逊刷单测评时想要有效果,测评方法很重要,不能直接通过链接进行下单,这样显的很不真实,如果是要找人帮忙测评,可以通过以下方式进行: 1、通过关键词搜索进入 选择自己想刷的关键词,直接搜…

物联网安全年报小结

小结 不仅仅是 LockerGoga,其他勒索软件也对工业系统造成了重大损失,如全球第二大听力集团 Demant 被勒索造成损失达 9500 万美元 [21];世界上最大的飞机零部件供给商之一 ASCO,因其位于 比利时扎芬特姆的工厂系统遭勒索病毒传染…

目标检测算法——YOLOv5/YOLOv7改进之结合​RepVGG(速度飙升)

>>>深度学习Tricks&#xff0c;第一时间送达<<< 目录 RepVGG——极简架构&#xff0c;SOTA性能&#xff01;&#xff01;&#xff01; &#xff08;一&#xff09;前沿介绍 1.RepVGGBlock模块 2.相关实验结果 &#xff08;二&#xff09;YOLOv5/YOLOv7改…

Alibaba官方上线,SpringBoot+SpringCloud全彩指南(第五版)

Alibaba作为国内一线互联网大厂&#xff0c;其中springcloudAlibaba更是阿里微服务最具代表性的技术之一&#xff0c;很多人只知道springcloudAlibaba其实面向微服务技术基本上都有的下面就给大家推荐一份Alibaba官网最新版&#xff1a;SpringBootSpringCloud微服务全栈开发小册…

基于STM32G431嵌入式学习笔记——三、KEY按键入门

一、按键在CubeXM里的配置 可以打开先前配置过LED的CubeMX&#xff0c;在其基础上进行按键的配置。 个人建议在这里先将原环境拷贝 更改副本文件夹名为LED_KEY_LCD 打开文件夹中的.ioc文件进行配置 在配置之前&#xff0c;我们先查阅产品手册了解按键的电路图&#xff0c;以…

07-Nginx 日志管理及自动切割

Nginx 日志管理及自动切割 对于程序员、运维来说&#xff0c;日志非常得重要。通过日志可以查看到很多请求访问信息&#xff0c;及异常信息。Nginx 也提供了对日志的强大支持。 日志管理范围 首先&#xff0c;下面要讲的这些日志相关属性可以配置在任意模块。在不同的模块&…

如果我在初用tomcat时,是看到这篇tomcat架构解析,是不是就不会被说菜鸡了!

写在前面 tomcat作为一个中间件&#xff0c;相信绝大多数java程序员&#xff0c;多多少少都应该用到过吧。尤其是在springboot还未流行的时候&#xff0c;本地环境&#xff0c;没少跑tomcat服务吧&#xff1f; 我们一般都是直接使用&#xff0c;将我们的web服务&#xff0c;直…

疫情下跨越一万公里的友情:熊超与飒特电子哨兵的故事

在熊超&#xff08;化名&#xff09;家中&#xff0c;有一面照片墙&#xff0c;上面贴满了他在非洲工作十多年的剪影。这些照片整齐地摆放成一个心形&#xff0c;挂在客厅最显眼的位置。每当亲戚朋友来访&#xff0c;熊超都会为他们讲起自己援助非洲十余年发生的故事。 十多年…

【无标题】EXCEL实现刷题

实现的思路&#xff1a; 导入题库word文件导入到excel–>绑定随机事件选定考题。 word题库导入Excel表的代码如下&#xff1a; 整理题库结构&#xff08;添加题号&#xff0c;分离答案&#xff09; Public Sub numAdd() Dim rng As Range, RNG1 As Range With Sheet1 .[b1]…

linuex服务器中如何安装mysql数据库(一次性完成,包含远程连接)

大家好。我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 今天给大家介绍一下&#xff0c;如何在新服务器中安装mysql数据库&#xff0c;总是捣鼓服务器&#xff0c;每次都去网上查&#xff0c;次次都不一样&#xff0c;浪费好多时间&#xff0c;这次自己记录…

Imperceptible Backdoor Attack: From Input Space to Feature Representation 笔记

1. 论文信息 论文名称Imperceptible Backdoor Attack: From Input Space to Feature Representation作者Nan Zhong&#xff08;Fudan University&#xff09;会议/出版社IJCAI 2022pdf&#x1f4c4;在线pdf 本地pdf代码&#x1f4bb;pytorch概要文中提出了一种难以察觉的后门…

temporal shift module(TSM)

【官方】Paddle2.1实现视频理解经典模型 — TSM - 飞桨AI Studio本项目将带大家深入理解视频理解领域经典模型TSM。从模型理论讲解入手&#xff0c;深入到代码实践。实践部分基于TSM模型在UCF101数据集上从训练到推理全流程实现行为识别任务。 - 飞桨AI Studiohttps://aistudio…

2. Object中equals和toStirng 源码分析

文章目录1.equals方法2.重写equals方法为何一定要重写hashCode方法&#xff1f;2.1 反例演示3.toString方法4. 整型转二进制我们都知道Object是所有类的父类&#xff0c;那么它里面的一些方法你是否真的理解了呢&#xff1f; 下面我们就以源码为基础来学习这些看似简单的方法吧…