Skip to content

Latest commit

 

History

History
173 lines (121 loc) · 3.73 KB

357-188930-乘法运算_multiplicant_multiplier_from_import_as.sy.md

File metadata and controls

173 lines (121 loc) · 3.73 KB
show version enable_checker
step
1.0
true

乘法运算

回忆

  • 上次复习了 函数的导入
    • import ... 导入包
    • from ... import ... 从包导入函数或变量
    • from ... import ... as ... 从包导入函数或变量并改名
  • 导入的是随机函数
    • 可以得到随机的整数(integer)

图片描述

  • 负数 也可以进行乘法吗??🤪

补码乘法

  • 负数
    • 用补码形式存储
  • 补码
    • 可以直接 进行乘法运算

图片描述

  • 乘法运算
    • 相对于 加减法
      • 有什么不同吗?

乘法和加减法优先级

  • 先 乘除
    • 后 加减

图片描述

  • 有 括号的
    • 要 优先

字符串的乘法

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

图片描述

  • 两个字符串
    • 不能相乘
  • 两个字符串真就
    • 不能相乘吗?

绝望

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

图片描述

  • 如果
    • 你还不死心...

转化

  • 将字符串转化为 整型

图片描述

  • 转化之后
    • 再相乘

字符串乘法应用

  • 将1,2,3三个整型数字
    • 封包为 两字节数字 的形式

图片描述

  • "h" \* 3
    • 就是 "hhh"
  • 解码时
    • 也可以这么用吗?

解码

  • 将字节序列 b"\xfe"
    • 按照单字节数字形式
      • 转化为 数字

图片描述

  • 这里面也用到了字符串乘法
  • 将字节序列b"\xfe\xfd"
    • 按照两个单字节序列数字的形式
      • 转化为数字

翻番

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

图片描述

  • 超越了我的认知

这到底是什么类型呢

  • ctrl+a 跳转到本行开头
  • ctrl+e 跳转到本行结尾

图片描述

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

pack 他试试

图片描述

  • 64bit 位 cpu 最大也就是
    • 8-byte的q 了
    • 目前这个数字 超过了 8-byte的范围

图片描述

  • struct报了error
    • argument out of range
  • 果然超了范围了
  • 但范围是多少呢?

范围

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

图片描述

  • 在边缘上再加1
    • 居然加上去了
  • 确实很令人困惑
    • 但他真的发生了!!!
  • 有朝一日
    • 一定要要解开这个谜团
      • 数字超越了 字节范围的最大值
      • 仍然 没有溢出

总结

  • 这次看了乘法 *
    • 整数可以乘整数
    • 整数可以乘字符串
  • 整数乘法
    • 非常神奇
    • 即使把8个字节 都撑爆了
      • 也不会崩溃
  • 乘这个字 也很有意思
    • 乘舟
    • 乘船
    • 乘风
    • 乘凉
  • 到底什么是呢?🤪
  • 下次再说 👋