文章目录

  • 1、进制
  • 2、运算符
  • 2.1算数运算符
  • Python特殊运算符:
  • 2.2位运算
  • 2.3逻辑运算符
  • 3、原码反码补码
  • 正数:
  • 负数:

1、进制

对于之前数电、微机原理等基础课程中大多都学过,对于程序员来讲,最主要是要掌握二进制和十六进制,在计算机中,所有的信息最终都是通过0/1来记录,这也就涉及到位的概念,每一位就是一个二进制数,然而如果程序员直接去处理二进制的数,那将会是一件非常麻烦的事情,很多情况下程序中会用十六进制的数。

  • 16进制:在数字前面加0x(注意前面是零,非字母O),如0x7f
  • 转换问题:16进制与2进制转换时,一般意为16进制转换为4位2进制,如0x7f位0111 1111

2、运算符

2.1算数运算符

对于Python的算数运算符,大多数和c保持一致,如+,-,*,/,%(取余)

Python特殊运算符:
  • //:整除(舍弃余数) 如5//2=2 , 7//2=3,不过这里要注意负数整除后,向下取整数,如:
-5//2
#-3
  • :幂运算 如22代表2的2次方,22=4,32=9
  • divmod(x,y):返回两个数,第一个为x除以y的商,第二个为余数

2.2位运算

所谓位运算就是对位这个层面进行操作,这里包括:

  • &:按位且,如:
9&8
# 1001    
# 1000
#结果为:1000=8
  • |:按位或
  • ~:逐位取反,这里需要注意的是,这里使用补码表示的,关于补码,详见本文第三部分,如:
~56
#转换为2进制:0011  1000
#逐位取反后为:1100  0111
#反码:        1011  1000
#补码:        1011  1001
#由于第一位(最高位)为符号标志位,0为正,1为负,所以为-57
  • ^:逐位异或
  • <<:左移xx位
>>:右移xx位

2.3逻辑运算符

  • and:且 ,如6>=5 and 7>5 为True
  • or: 或
  • not : 非

3、原码反码补码

正数:

原码反码补码均为它本身

负数:
  • 原码为它本身
  • 反码为除最高位符号位不变,其它位按位取反
  • 补码为在反码的基础上加1
  • 如果已知负数的补码求原码,步骤和已知原码求补码一致