Skip to content

Latest commit

 

History

History
168 lines (113 loc) · 4.05 KB

168-188930-乘法运算.sy.md

File metadata and controls

168 lines (113 loc) · 4.05 KB
show version enable_checker
step
1.0
true

乘法运算

回忆

  • 补码系统在计算机领域通用
  • 负数在计算机中自动用补码形式存储
  • 也可以直接参与加减计算
  • 除了加减之外还有乘除运算
  • 乘除是如何进行的呢?🤪
  • 下次再说 👋

乘法

  • 乘法本质上是连加
  • 符号是 *
  • shift + 8

图片描述

  • 左右操作数都是整数
  • 乘法运算的结果也是整型变量
  • 这就是整数的乘法
  • 有相应的指令么?

乘法指令

  • 虚拟机乘法指令

图片描述

  • 加减乘都有啊?
  • 仿佛知道下一课内容了
  • 我们可以试试随机数的乘法

随机乘法

图片描述

  • 这个东西能否简化一下呢?

简化

图片描述

  • 这样就可以只引入这个 randint 这个函数
  • 而无需引入整个 random 这个模块 module
  • 还可以再简化么?

再简化

  • 不但可以引入这个函数
  • 还可以给他起一个别名 r
  • 这样写起来就更简单了
  • 不过要重新进一次游乐场

图片描述

  • 这次确实可以引入 randint 并起一个别名叫做 r
    • 但是注意这次系统只认 r 不认 randint
    • 想要系统认识randomint 怎么办?
  • 不要使用别名
    • 直接引用函数
    • 就会认识函数名
  • 我们这次其实主要研究乘法
    • 来看看加减乘除的优先级

乘法和加减法优先级

图片描述

  • 先乘除后加减
  • 有括号的要优先

字符串的乘法

  • 字符串可以和整型数字相乘
  • 乘积的类型还是字符串

图片描述

  • 如果两个字符串不能相乘
  • 可以把能转化为整型数字的字符串转化了
  • 然后再相乘
  • 如果你还不死心...

绝望

图片描述

  • 字符串要不就没有乘法
  • 有乘法只能和整型相乘

字符串乘法应用

图片描述

  • "h" \* 3
  • 这样可以要 3 个 2 字节的有符号整型变量
  • 解码上可以用么呢?

解码

图片描述

  • 这里面也可以用字符串乘法

翻番

  • 这个乘法翻着跟头往上涨啊
  • 根本就不是加法能够想象的

图片描述

  • 超越了我的认知

这到底是什么类型呢

图片描述

  • 居然是整型
  • 而且还能进行运算

pack 他试试

图片描述

  • 64bit 位 cpu 最大也就是 q 了

图片描述

  • 果然超了范围了
  • 但范围是多少呢?

范围

  • 引入 sys 包
    • sys 代表 system
    • 意思是系统
    • 这里可以得到和系统相关的一些内容
    • 我们现在用的是 ubuntu 系统
  • 查到无符号 8 字节整型数字
  • 最大也就是 9223372036854775808

图片描述

  • 在边缘上再加一
  • 居然加上去了
  • 确实很令人困惑
    • 但他真的发生了
  • 说明Python对于int型变量做了很好的优化
    • 这个以后我们机会细说

总结

  • 这次看了乘法 *
  • 整数可以乘整数
  • 整数可以乘字符串
  • 乘法结果很大也不会崩溃
  • 有加就有减
  • 互为逆运算
  • 乘法的逆运算是什么呢?🤪
  • 下次再说 👋