美文网首页
Day7 作业总结以及位运算

Day7 作业总结以及位运算

作者: ChiAo1fei | 来源:发表于2019-01-02 17:50 被阅读0次

作业总结

  1. 数值交换

    a = 12
    b = 13
    a,b = b,a
    print(a,b)
    
  2. 判断列表元素的类型

    isinstance(数据,类型)

    sum = 0
    list1 = [20, 'abc', [1,2], 12.5, '123']
    for num in list1:
        if isinstance(num, int) or isinstance(num, float):
            sum += num
    print(sum)
    

进制

在计算机编程中,整数可以通过十进制,二进制,八进制和十六进制来表示

  1. 十进制

    基数:0,1,2,3,4,5,6,7,8,9
    进位:逢十进一
    位权:123 = 100 + 20 + 3
    
  2. 二进制

    基数:0,1
    进位:逢二进一
    100(2) = 4(100)
    位权:101(2) = 1 * 2 ** 0 + 0 * 2 ** 1 + 1 * 2 ** 2
    
  3. 八进制

    基数:0,1,2,3,4,5,6,7
    进位:逢8进1
    位权:123(8) = 3 * 8 ** 0 + 2 * 8 ** 1 + 1 * 8 ** 2
    
  4. 十六进制

    基数:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
    进位:逢16进1
    位权:123(16) = 3 * 16 ** 0 + 2 * 16 ** 1 + 1 * 16 **2
    
  5. 程序中表示不同进制的数

    • 在程序中直接写的数字是10进制
      num1 = 110      # 这是一个十进制
      print(num1)
      
    • 0b+二进制
      num1 = 0b1101
      print(num1)
      print(bin(num1),type(bin(num1)))
      
    • 0o+八进制
      num1 = 0o1234567
      print(num1)
      print(oct(num1))
      
    • 0x+十六进制
      num1 = 0xffff
      print(num1)
      print(hex(num1))
      

位运算

计算机存储数据只能存储数字数据,而且存的是数字的补码。
计算机对数据进行运算的时候是使用补码进行运算的,将数据偶从计算机中读取出来看到的是原码

  1. 原码

    符号位+真值

    说明:0 - 正;1 - 负

    最高位为符号位

    真值:去掉符号位后数字的二进制表示

  2. 反码

    负数的反码:原码的符号位不变,其他位取反

    整数的反码:就是原码

  3. 补码

    正数的补码是原码

    负数的原码是反码加1

  4. 位运算:

    &(按位于),|(按位或),~(按位取反),^(按位异或),>>(右移),<<(左移)

    • 数字1 & 数字2 -> 每一位上的数都为1结果就是1,有0就是0
      0111(补码) & 1101(补码) --> 0101(补码)
      特点:一个位上的数和1与,可以保留这个位上的数;和0与可以置0
      应用:判断一个数的奇偶性 
              如果一个数的二进制的最低位是1就是奇数
              num & 1 == 1 奇数
              num & 1 == 0 偶数
      
    • 数字1 | 数字2:
      1 | 1 = 1
      1 | 0 = 1
      0 | 1 = 1
      0 | 0 = 0
      特点:置1
      
    • ~数字1 : 将数字上的每一位取反
      ~1 = 0
      ~0 = 1
      
    • 数字1 ^ 数字2 :相同为0,不同为1
      
      1 ^ 1 = 0
      0 ^ 0 = 0
      1 ^ 0 = 1
      0 ^ 1 = 1
      应用:加密,判断两个数是否相等
      
    • 数字1 << N  :数字1左移N位,结果为 数字1 * 2 ** N
      数字1 >> N  :数字1右移N位,结果为 数字1 // 2 ** N
      应用:快速的进行乘2的幂函数或者除2的幂函数
      

相关文章

  • Day7 作业总结以及位运算

    作业总结 数值交换a = 12b = 13a,b = b,aprint(a,b) 判断列表元素的类型isinsta...

  • Day7 作业与位运算技巧

    作业 # 1num1 = int(input('请输入一个整数:'))if num1 & 1: print(...

  • 位运算总结

    一、数据类型的位数 二、位运算符 三、常用计算 判断int型变量a是奇数还是偶数 求平均值 对于一个大于0的整数,...

  • Java 位运算超全面总结(以及Koltin)

    1.原码、反码、补码 关于原码、反码、补码的相关知识作者不打算在这里长篇大论,相关知识已有别的大佬总结很好了,还请...

  • day7 位运算相关

    在计算机编程中,整数可以通过二进制、八进制、十进制、十六进制来表示 1.进制 1.十进制a.基数:0,1,2,3,...

  • Python自学笔记Day7

    Python自学笔记——Day7 Python运算符 3. 赋值运算符 为Python变量提供赋值运算的符号 运算...

  • 进制转换以及位运算

    本文代码演示采用的是golang语言 进制 其它进制转十进制 十进制数字计算 二进制转十进制 从最低位开始,将每个...

  • 【Algorithm】位运算总结

    异或 表示xor 或 ^ 具有以下几种特性 交换律 结合律 对于任何数x,有x xor x = 0,x xor 0...

  • 算法位运算总结

    在位运算之前,对二进制需要掌握的基础知识 正数的二进制,例如 5原码是 0000 0000 0000 0000 0...

  • 算法总结-位运算

    位运算符用于二进制运算 与运算 & 二进制数 n & 1 的结果为n的末位 异或运算 ^ 长度为 L 的二进制数 ...

网友评论

      本文标题:Day7 作业总结以及位运算

      本文链接:https://www.haomeiwen.com/subject/flqtrqtx.html