Skip to content

Latest commit

 

History

History
321 lines (237 loc) · 7.83 KB

333-188921-加法运算_add_calculate_操作符_操作数.sy.md

File metadata and controls

321 lines (237 loc) · 7.83 KB
show version enable_checker
step
1.0
true

加法运算

回忆上次内容

  • 上次 研究了 视频终端的 演化
    • 从VT05 到 VT100
    • 从 黑底绿字 到 RGB 24位真彩色
    • 形成了 VT100选项
  • 从而 将颜色 数字化

图片描述

  • 计算机其实最擅长的就是数字的各种计算
    • 具体有什么计算
    • 怎么计算的呢?🤔

pasaline

  • 1642
    • 为了帮助父亲解决税务上的计算
    • 帕斯卡 研发了 加法运算装置
    • Pascal's calculator

图片描述

  • 机械式计算器
    • 通过旋转圆盘 来计算

图片描述

  • 使用棘轮 控制进位

1 + 2

  • 1 + 2
    • 太简单了
    • 这题我会

图片描述

  • 其实,这个问题也有人研究
    • 还研究出了名堂
    • 成为了 当时的一个文化现象
  • 这个文化现象 就是陈景润
    • 大意就是 只会学习,偏才
  • 陈景润就是研究 1+2 的人
    • 任一充分大的偶数 都可以表示成
      • 二个素数的和
      • 或是
      • 一个素数和一个半素数的和
  • 当时以为陈景润 是一个只会数学没有生活能力的 nerd
    • 现在反思 他能成为 人人知道的红人 就很厉害

哥德巴赫猜想

  • 这源于 徐商寿的报告文学《哥德巴赫猜想》
    • 各地报纸、广播电台纷纷 全文转载和连续广播
    • 是一本文学色彩很强的报告文学
    • 在特定阶段有指明方向的意义

图片描述

  • 陈景润
    • 能够配合时代转向
    • 把握机会
      • 造成了当时的效应

思考人生

  • 早期陈景润作为中学教师
    • 就给当时的数学大师华罗庚写信获得发现和提拔
  • 早期的华罗庚用今天的观点看
    • 20 岁还是初中毕业
    • 身患残疾靠自学成才
    • 在《科学》指出讨论苏家驹论文中的错误
    • 获得清华教授关注
    • 进入清华

图片描述

  • 华罗庚和陈景润都
    • 在自己的领域潜心研究
    • 知道当时信息传播的基本模式
    • 能够抓住传播的核心节点
    • 善于利用当时的主流媒体
    • 并能最终把握机会的人
  • 世界是普遍联系的
    • 时代是不断变化的
  • 正所谓
    • 执今之道
    • 以御今之有
    • 以知古始
    • 是谓道纪
  • 还是回到
    • 十以内加法😜

十以内加法

  • 这就是两个数字相加
    • 并求出结果

图片描述

  • 可是数字
    • 不是都用 二进制 存储么?
    • 应该也用 二进制 相加?
  • 二进制 怎么相加 呢?

二进制加法

  • 10 进制加法
    • (3)10 + (8)10 = (11)10
  • 2 进制加法
    • (0b11)2+(0b1000)2 = (0b1011)2 = (11)10

图片描述

  • 无论
    • 你用两个手指数
    • 还是用十个手指数
    • 瓜就是那么多的瓜
  • 瓜的数量
    • 和你有几根手指 没关系
    • 数的方法 不同
    • 不影响 瓜的多少

计算机内部

图片描述

加法过程

  • 加法是
    • 一个运算 operation

图片描述

  • 加号是
    • 一个运算符 operator
    • 运算符两边是操作数 operand
  • 加 这个字
    • 怎么来的呢?

图片描述

  • 手放到 嘴前面
    • 音量

图片描述

  • 加的结果
    • 叫做什么呢?

  • 嘴 在 木头上吹 发出声音

图片描述

  • 有人用喉咙发声
  • 也有人 用竹笛 和声

图片描述

  • 后来 也有 写作 禾木旁的
    • 指的是 把禾放到口里
      • 和谐
    • 后台特指 放到一起
      • 和面
    • 有吃的 大家都很
      • 和平
  • 在数学中
    • 指的是 加到一起的结果

语法结构

  • 加法运算包括
    • 左操作数
    • 加法运算符
    • 右操作数

图片描述

  • 上面这两种加法
    • 会有什么不同的结果么?

结果

图片描述

  • 结果 就是这么一个 结果
    • 可这是 为什么 呢?
  • 加法 都是 加法
    • 为什么 结果不同 呢?

数据类型

  • 他们的数据类型 不一样
    • 数字相加 得到数字的和
    • 字符串相加 得到 拼合的字符串

图片描述

  • 虽然 都是 加号
    • 但是因为 操作数的不同
    • 加的方式 也不同

变量加法

图片描述

  • i_left
    • i
      • integer
      • 整型数字
    • left
      • 左操作数

图片描述

  • i_right
    • i
      • integer
      • 整型数字
    • right
      • 右操作数

变量位置

  • 左操作数
    • 用数字变量的方式存的 int型变量
    • 内存情况是b'\x03'
    • 可理解为十进制的 3
    • 放在内存 9793120 位置开头的字节里

图片描述

  • 右操作数
    • 用数字变量的方式存的 int型变量
    • 内存情况是 b'\x08'
    • 可理解为十进制的 8
    • 放在内存 9793280 位置开头的字节里
  • 实验中的 id和图中的不一样 很正常
    • 因为内存情况 是不一样的

加法指令

  • 左右操作数
    • 都从内存读出来之后
    • 放在 cpu 寄存器里面
  • 加法执行的
    • 肯定是 cpu 的加法指令

图片描述

  • 加出来的结果 放在寄存器里
    • 可是没有地方 接收 加法运算的结果
    • cpu 继续执行下一条指令
    • 这结果 就随风而去了
  • 想把 加法结果
    • 存住 怎么办?

赋值运算

  • 过程是
    • 声明一个变量 i_sum
      • i 指的是 integer 型变量
      • sum 说明他是一个和
    • i_sum 接收加法运算的结果
    • i_sum 确实是一个 int 型变量
    • 在内存中的位置是 10894688
  • 其实是 i_sum ← (i_left + i_right)

图片描述

  • i_sum具体的值 是 \x0b
    • (0xa)16 相当于 (10)10
    • (0xb)16 相当于 (11)10
  • 3 + 8 = 11
    • 电脑算的没毛病!😝
  • to_bytes 这个函数
    • 该怎么 怎么理解 呢?

int.to_bytes

  • help(int.to_bytes)

图片描述

  • length
    • 字节长度
  • byteorder
    • 字节序
      • big 大端序
      • little 小端序

图片描述

总结

  • 这次 进行了
    • 加法运算
  • 加法运算
    • 由 运算符 和 操作数 组成
      • 加法操作 执行的是 cpu的加法指令
    • 运算的结果 可以赋给 一个变量接收

图片描述

  • 程序输入到 游乐场 之后
    • 很快就消失了
  • 能写入py文件中 保存起来
    • 不用每次 再从头输入了吗??🤔
  • 下次再说 👋