python邂逅——符号运算(一)

1、布尔运算符

  共三个

  not

  逻辑取反  eg:not 1  return false

  and

  优先返回假值的对象  eg:1 and 0  return 0  12 and 100  return 12

  or

  优先返回真值对象  eg:1 or 2  return 1  0 or 20  return20

2、位运算

  &  |  ^  <<  >>  ~

  &:位与运算

  输入相同值则返回相同值,不同则返回0

  eg:7 & 7  return 7  8 & 9  return 0

  |:位或运算

  输入有真值则返回真值,输入两个假值则返回0

  eg:2 | 3  return 2  0 | 0  return 0

  ^:位异或

  相同为0,不同为1

  eg:2 ^ 3  return 1  2 ^ 2  return 0

  <<:左移

  将数化为二进制数后向左移位,低位则补0

  x << y  即将x化为二进制数后向左移y位

  eg:2 << 3  return 16

  >>:右移

  将数化为二进制数后向右移位,低位则丢弃

  x >>y  即将x化为二进制数后向右移y位

  eg:2 >> 1  return 1

  ~:按位取反

  了解按位取反之前需要知道一下知识点

  (1)取反操作是在原码上进行的!

  (2)在计算机里面,数是以补码存储的,但是转换成其他进制需原码

  (3)原码求补码:取反,+1

  (4)补码求原码:取反,+1

  (5)正数的补码即源码,负数的补码则为其对应正数二进制表示所有位取反(包括符号位,0变1,1变0)后加1

  当输入为正数时,求其补码(即其原码),再取反,再求原码,即可得到取反后的数(符号带上)

  eg:~5

    5的补码为0000 0101  取反得1111 1010,可见取反后数为一个负数(二进制最高位表示符号,1为负,0为正),然后求其原码得0000 0110,再转换成十进制得数为-6

  当输入为负数时,求其补码(即该数的正数取反后+1),再取反,再求源码,即可得到取反后的数(符号带上)

  eg:~-6

    -6的补码为6的原码取反后+1,6原码为0000 0110,取反+1后得-6补码为1111 1010,再取反得0000 0101,可见起取反后是一个正数,然后求其原码得0000 0101,再转换成十进制得数5

  

原文地址:https://www.cnblogs.com/shiqyka/p/8994948.html

时间: 2024-10-12 14:49:39

python邂逅——符号运算(一)的相关文章

python numpy 的运算

一,基本运算 >>> a = array([1,2,3,4])>>> aarray([1, 2, 3, 4])>>> b=arange(4)>>> barray([0, 1, 2, 3])>>> a + barray([1, 3, 5, 7])>>> a - barray([1, 1, 1, 1])>>> a *barray([ 0, 2, 6, 12])>>>

java位运算和无符号运算

计算机在底层使用的是二进制补码进行运算. 计算规则: 正数的原码.反码.补码是其二进制本身. 负数的原码首先计算其二进制数,然后最高位使用1表示负数,反码是最高位不变其它位取反,补码是在反码的基础上进行+1操作. System.out.println( 8 >> 1);//正数进行右移位运算 8的二进制是 0000 0000 0000 0000 0000 0000 0000 1000,进行右移1位得到二进制0000 0000 0000 0000 0000 0000 0000 0100,然后转成

python基础04 运算

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python的运算符和其他语言类似 (我们暂时只了解这些运算符的基本用法,方便我们展开后面的内容,高级应用暂时不介绍) 数学运算 >>>print 1+9        # 加法 >>>print 1.3-4      # 减法 >>>print 3*5        # 乘法 >>>print 4.5/1.5   

MATLAB的符号运算基础

作者:长沙理工大学 交通运输工程学院 王航臣 在数学运算中,运算的结果如果是一个数值,可以称这类运算为数值运算:如果运算结果为表达式,在MATLAB中称为符号运算,符号计算是对未赋值的符号对象(可以是常数.变量.表达式)进行运算和处理.MATLAB具有符号数学工具箱(SymbolicMath Toolbox),将符号运算结合到MATLAB的数值运算环境.符号数学工具箱是建立在Maple软件基础上的. (一)  符号变量建立符号变量和符号常数 建立符号变量的方法有两种,应用,应用sym与syms函

Verilog中的符号运算

在Verilog-1995中,只有integer数据类型被转移成有符号数,而reg和wire数据类型则被转移成无符号数.由于integer类型有固定的32位宽,因此它不太灵活. 在Verilog-2001中,有符号形式也被扩展到reg和wire数据类型中.新加一个关键字,signed,可以按照下面的方式定义: reg     signed[7:0] test; wire    signed[7:0] test_w; 下面是一些有符号计算以及赋值语句实例: 可见,在进行有符号运算时,表达式中的变量

MATLAB符号运算

1.符号运算 使用MATLAB可以进行多项式乘除运算,也可以进行因式分解. 例1. 多项式乘除运算(x+3)3 >> syms x;>> expand((x+3)^3) ans = x^3 + 9*x^2 + 27*x + 27 例2. 因式分解(x9-1) >> syms x;>> factor(x^9-1) ans = (x - 1)*(x^2 + x + 1)*(x^6 + x^3 + 1) 2.向量点乘 >> A =[ 1, 2,3];&

Verilog -- 有符号与无符号运算

目录 Verilog中有符号与无符号的加法和乘法运算 无符号乘法和加法 有符号乘法和加法 有符号和无符号运算 参考: https://blog.csdn.net/vivid117/article/details/101427302 http://wscentity.lofter.com/post/1d00edbd_6476453 Verilog中有符号与无符号的加法和乘法运算 无符号乘法和加法 对于无符号的乘法和加法,没有什么好说的,就是直接用'*'和'+'. 有符号乘法和加法 有符号和无符号运

python sympy包符号运算进行定积分计算

preface:曾以为不会再用编程遇到定积分的计算,自从本科用过matlab编程计算积分后,没再用matlab,转而投向python的怀抱.python有对应的包sympy,用来计算积分,无论不定积分还是定积分. 主要用到integrate这个函数, >>>:from sympy import integrate >>>:integrate? 可以找到integrate函数的用法, 另外使用符号变量的时候,需要先导入符号,在sympy.abc下.以下为一个小的例子(si

python学习之运算表达式优先级

python中,有变量.值和运算符参与的语句叫做表达式. 比如: #字符串表达式 "hello" #运算表达式 2+3 #赋值表达式 test = "hello" #变量表达式 test 运算符优先级 运算符 描述 lambda Lambda表达式 or 布尔"或" and 布尔"与" not x 布尔"非" in,not in 成员测试 is,is not 同一性测试 <,<=,>,&g