栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python求补码的代码(源码 反码 补码 运算)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python求补码的代码(源码 反码 补码 运算)

Python 1.Python基础

python是一门弱类型(PHP,python,Javascript,ruby)的语言,变量的类型不固定,当输入值是什么类型时,变量就会变成什么类型。

那什么是强数据类型语言(java,c,c++.c#)呢,当变量被定义后,则不允许存储其他的数据类型。

1.1变量的格式(可以发生变化的量):

只能含有数字,下划线,字母。只能以下划线和字母开头。(不能以数字开头,因为变量和代码需要存储在内存中,而内存中的内存地址是以数字组成的,当变量开头为数字时,会使得机器误认为是内存地址,从而产生混淆。)不能以保留字和关键字为变量名。变量命名尽量规范,使得变量命有意义。(1.小驼峰法,除了首字母其他每个单词首字母大写;userAddress; 2.下划线法 user_address) 1.2 python关键字

查看Python的关键字

>>>import keyword
>>>dir(keyword)
['__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'iskeyword', 'issoftkeyword', 'kwlist', 'softkwlist']
>>>keyword.kwlist
['False', 'None', 'True', '__peg_parser__', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

Python2默认采用ASCII编码,所以默认不支持中文;

Python3默认采用的utf-8编码。

1.3 注释

注释:对代码的解释说明,目的是为了让别人和自己很容易的看懂

单行注释:#多行注释: ‘’’ ‘’’ “”" “”"(三个单引号和三个双引号),也可以每行开头使用#变为多行注释中文注释(编码注释):可以声名编码方式,#coding:utf-8,#coding=utf-8,# *-* coding:utf-8 *_*

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kq2obpGy-1647781218528)(C:Users陈宇鹏AppDataRoamingTyporatypora-user-imagesimage-20220319161518735.png)]

交换数值的三种方式

#第一种方式:采用中间变量法,缺点是使用临时变量,占用空间内存地址;
num1=10
num2=20
print("交换前 num1=%s,num2=%s"%(num1,num2))
tmp=num1
num1=num2
num2=tmp
print("交换后 num1=%s,num2=%s"%(num1,num2))

#第二种方式:采用数学法
print("交换前 num1=%s,num2=%s"%(num1,num2))
num1=num1+num2
num2=num1-num2
num1=num1-num2
print("交换后 num1=%s,num2=%s"%(num1,num2))

#第三种方式:直接交换
print("交换前 num1=%s,num2=%s"%(num1,num2))
num1,num2=num2,num1
print("交换后 num1=%s,num2=%s"%(num1,num2))
1.4 数据类型:

基本数据类型

数值型(整数型,浮点型,复数)布尔型(真 or 假)字符串(单引号,双引号,三引号)None:代表空,也就是没有的意思

复合数据类型(指针,引用)【字典,列表,元组,结合等】

‘’‘万物皆对象’‘’

1.5 字符串的格式化输出

字符串格式化输出:python提供了多种字符串格式化输出的方式

1.通过%s占位 print("%s+%s=%s" %(a,b,a+b))2.将其他类型全部转换为字符串,通过+拼接,统一输出 print(str(a) + “+” + str(b) + “=” + str(a+b)){}占位输出 print("{}+{}={}".format(a,b,a+b))通过逗号显示变量print(a, b)print(f"{a}+{b}={a+b}") 1.6运算符 1.6.1 常见运算符:

算术运算符关系(比较)运算符逻辑运算符赋值运算符三目运算符位运算符 1.6.2 算术运算符:

+ - * / % ** // (加,减,乘,除,,取余,次方,整除) 1.6.3 关系(比较)运算符:

​ > (大于) 、< (小于) 、>=(大于等于) 、<=(小于等于)、==(用于判断)、!=(不等于)

1.6.4 逻辑运算符:

​ and 并 or 或 not 不 优先级:not>and>or

1.6.5 所属运算符

​ 所属运算符:判断一个值是否存在某个复合数据类型中

>>>arr = [1,2,3,4,5]  #定义一个arr的列表
>>>1 in arr  #判断1在不在arr列表里。
True
>>>11 in arr 
False
>>>1 not in arr 
False
>>>arr == None/arr is None/arr is not None/arr != None 判断列表是否为空
1.6.6 位运算符
a = 0011 1100
b = 0000 1101
a&b = 0000 1100 &:按位与运算符,两个都为1则为1,否则为0
a|b = 0011 1101 |:按位或运算符,有1时则为1 
a^b = 0011 0001 ^:按位异或运算符,相同为0,不同为1
~a = 1100 0011  ~:按位取反运算符,0变1,1变0.
a << 2 为240 二进制解释:11110000 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。
a >> 2 为15  二进制解释:00001111	右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数
1.6.7 赋值运算符:

= 将等号右侧的结果赋值给左侧+= a +=10 <==> a = a + 10-=*=/=//=**=&=

python中没有自加和自减运算符,请使用+=或-+来替代!!!

1.6.8 三目运算符

变量 = 表达式 ? 结果1 : 结果2

1.6.9 原码、补码、反码

源码,反码,补码为了解决负数的二进制运算出错。

源码(原始的二进制码)

反码(符号位不变,其余取反)

补码(反码加一)

以-2为例 -2的原码位 1000 0010  反码位 1111 1101 补码位 1111 1110
2加-2就等于   
 0000 0010
 1111 1110    + 
------------------------
1 0000 0000   因为一个字节只有8个字节,故1会被溢出。

-2 + 1 = -1 
0000 0001
1111 1110 (反码)    +
---------------------
1111 1111(将这个反码变为原码   减一然后将1变为零,除符号位外) 1000 0001

以 -3 + 5 = 2 为例
1000 0011  -3原码   1111 1100  -3补码
1111 1101   -3反码
0000 0101   5的原码      +
-----------------------------------------
1 0000 0010    最前面的1溢出
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/772861.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号