1-4 进制、运算符和优先级、原码、补码、反码

本文介绍了Python中常见的进制转换,如二进制、八进制和十六进制,并详细讲解了各种运算符,包括算数、位、比较、逻辑、赋值等。此外,还探讨了负数在计算机中的原码、反码和补码表示,以及运算符的优先级规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进制

  1. 常见进制有二进制、八进制、十六进制等。应该重点掌握二进制和十六进制。
  2. 转为十进制——按位乘以权累加求和
    - 0b1110计算为 1 * 2 ** 3 + 1 * 2 ** 2 + 1 * 2 * 1 + 0 * 2 ** 0 = 14
    - 0x计算为 4 * 16 + 1 * 1 = 65
  3. 转为二进制
    - 0xF8按位展开即可,得到0b1111 1000
    - 127除以基数2,直到商为0为止,反向提取余数
    例子
  4. 转为十六进制
    - 127除以基数16,直到商为0为止,反向提取余数
    例子
    - 0b 1101 1111 前四位为12即十六进制的C,后四位为15,即十六进制的F,所以0b1101 1111 == CF
    tips:
  • 0b表示二进制(Binary system 简写 bin)
  • 0o表示八进制(OCT 一般Linux权限的时候才会用到)
  • 0x表示十六进制(Hex 有时候有些语言会用H来表示)
  • divmod()函数可以将除法的商和余数记录下来
    例子:
    divmod(5,2)
    结果:(1,2)

运算符 (Operater)

算数运算符

  1. + - * / **(平方)
  2. 自然除 / 结果是准确结果(表示有可能是浮点数),整除 //(向下取整,运算结果一定是整数)。注:2.x中的 / 和 // 都是整除。

位运算符(都是按二进制进行逻辑预算)

  1. &(位与) |(位或) ~(按位取反) ^(异或) << >>
  2. 常用方式:乘除2的倍数,32 // 8 相当于32 >> 3(8 == 2 ** 3 )
    << 和 >> 是移位运算符
  3. ~12 等于-13 ,因为这涉及到符号位的运算。

Tips :

  • 判断数的奇偶性:
    1. 9 % 2 == 1
    2. 9 & 2 == 1
  • 异或:相异为一
    同或:相同为一

比较运算符

  1. == != > < >= <=
  2. 返回一个bool值
  3. 链式比较操作符
    4 > 3 >2
    4 > mynumber >= 1

逻辑运算符

  1. 与或非 and or not
  2. 短路运算符
    • and 如果第一个表达式为False,后面的就没有必要计算了,这个逻辑表达式一定是False
    • or 如果第一个表达式True,后面的就没有必要计算了,这个逻辑表达式一定是True
      Tips:
      将常用的易于判断的表达式放在前面,可以提高代码的效率

赋值运算符(先计算右边)

  1. a = min(3,5)
  2. += -= *= /= %=
    b += 1 => b = b + 1(不完全等价于,有些许区别)
  3. x = y = z = 10

成员运算符(主要在容器里面使用)

in、 not in

身份运算符(主要在对象里面使用)

is、is not

原码、反码、补码的负数表示方法(正数的原码,补码,反码都一样)

  • 原码(主要是给人看的)
    5 => 0b101 , 1 => 0b1 , -1 => -0b1 , bin(-5) => ’ -0b101’

  • 反码
    正数的反码与原码相同;负数的反码符号位不变,其余按位取反

  • 补码(主要是方便计算机运算)
    正数的补码与原码相同;负数原码转为补码:负数的补码符号位不变,其余按位取反+1

    Tips:
    - 二进制的最高位为符号位
    - 反码和补码的符号位不变
    - 补码的补码就是原码

  • 负数表示法

    • 早期数字电路中的CPU中的运算器实现了加法器,但是没有减法器,减法要转换成加法
    • 负数在计算机中使用补码存储,-1 的补码为 1111 1111
    • 5 - 1 => 5 + ( -1 ) 直觉上0b101 - 0b1,其实计算机中0b 0000 0101 + 0b 1111 1111 溢出位舍弃
    • 10 ^ 9 等于 3,10 ^ ( -9 ) = -3

运算符优先级(由高到低)

优先级表

规律:

  • 算数运算符 > 位运算符 > 身份运算符 > 成员运算符 > 逻辑运算符
  • 单目运算符 (例如正负)> 双目运算符(例如加减乘除)
    Tips:
    长表达式多用括号

表达式(Expression)

  • 算术表达式
  • 逻辑表达式
  • 赋值表达式
    Python中,赋值即定义,如果一个变量已经定义,赋值相当于重新定义
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值