重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
原码:原码是二进制数字的一种简单的表示法。二进制首位为符号位,1代表负,0代表正。
公司主营业务:网站设计、成都网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出东河免费做网站回馈大家。
反码:反码可由原码得到。如果是正数,反码与原码相同;如果是负数,反码是其原码(符号位除外)各位取反而得到的。
补码:补码可由原码得到。如果是正数,补码与原码相同;如果是负数,补码是对其原码(除符号位外)各位取反,并在末位加1而得到的(有进位则进位,但不改变符号位)。
python有按位取反的操作符:~ 但是对负整数要小心操作,因为在计算机系统中,数值一律用补码来表示和存储的。
python支持:数学运算符、逻辑运算符、比较运算符、赋值运算符、(位运算符)
其中:+、-、*、/,与数学中的加减乘除一样
整除(//),两数相除结果只取整数部分
取余(%),两数相除取余数
幂运算(**),x ** y 即为(求x的y次方)
可用于开方。如下:
注意:运算符的运算不一定非得是数据,也可是存数据的变量
所有比较运算符的值都是布尔值(False/True)
补充:is的使用
一个变量有三要素,分别是:类型(变量中存储的数据的类型)、值(变量中存储的数据)、
地址(变量存储的真正内容,数据的地址)
(==)和is的区别: *
注意:变量中若是存储的数据为数字和字符串,则地址相同
(变量中存储的数据为数字和字符串)示例:
与比较运算符的运算对象和值都是一样的,值都为布尔值
应用:要求同时满足多个条件的时候就用逻辑与运算
练习:能否获得奖学金条件,成绩90分以上以及测评分不能低于95
False or False -- False
运算技巧:只要存在True,则结果为True
应用:要求多个条件只要有一个条件满足就使用逻辑或运算
练习:是否降班条件,考试分数低于60,或者不在教室
not False = True
not True = False
是否漂亮,评分大于5则为漂亮
所有的赋值运算符,要求运算符的左边必须是变量;右边是有结果的(值)
其他赋值运算符中除(=)外,运算方法与以上一致
数学运算符 比较运算符 逻辑运算符 赋值运算符
优先级高的先算,优先级低的后算。如果有(),先算()里面的
数学运算符中的优先级:** *,/,%,// +,-
1.int:包含所有的整数,支持十进制、二进制、八进制、十六进制
2.float:包含所有的小数,支持科学计数法
3.布尔(bool)类型:值只有True和False,数学运算中 True == 1 ,False == 0
4.复数(complex)型:实部 + 虚部(通常用j来表示虚部,j前面的数字不能省略)
1,认识字符串:
通过单引号或者双引号括起来的字符集(文本)就是字符串
什么是字符 :python中只有字符的概念,没有字符的类型,如果要表示一个字符,用一个长度是1的'字符串'来表示
字符串是不可变的,但是有序--》(长度不可变,字符内容不可变,有序指的是每个字符在字符串中的位置是不变的)
2.字符串类型(str):str是python自己提供的一种容器型数据类型
容器型数据类型的特点:一个字符串中可以存储多个字符
3.字符串中的字符
注意: 1.没有阻止转义时,一个转义字符的长度是1
2.可以在字符串的最前面加r/R来阻止转义(阻止字符串中的所有转义字符转义)
如下:
例如:
4.字符编码:字符的编码就是为了把字符存到计算机里面,给每个字符一个固定的编号(数字组成)
计算机在存储数据的时候只能存数字数据,而且存的是数字的二进制的补码
数字存储:列如 10— 转换成二进制 - 求补码(存储)
目前采用的两种编码方式:ASCII码表(128个字符)和Unicode编码表(相当于ASCII码表的扩充,
采用两个字节对字符进行编码,包含世界上所有的语言和符号,又称万国码)。python采用的是Unicode编码表
小写字母的编码范围(a-z):97 - 122
大写字母的编码范围(A-Z):65 - 90
中文编码范围:0x4e00 - 0x9fa5
函数应用:
首先你可以自己写函数采用%2的方式来算.
但是python自带了方法 bin.
比如bin(12345)回返回字符串'0b11000000111001' 这个时候在把0b去掉即可.
bin(number).replace('0b','')
更详细的介绍可参考 这篇文章
如下以8位二进制为例:
特殊地数字在计算机中用二进制补码形式表示,补码10000000表示的不是 -0,而是-128
一般来讲,整形数在内存中是以 补码 的形式存放的,输出的时候同样也是按照 补码 输出的。
但是在 Python 中,情况是这样的:
所以为了获得十进制负数的补码,我们需要手动将其和 0xffffffff 进行与操作,得到一个十六进制数,再交给 bin() 转化,这时内存中得到的才是你想要的补码。
计算机中的正负数,其本身就是补码。
求补码,不需要你编程。
在你输入正负数时,键盘,以及操作系统,就已经
把正负数变换成补码,送到计算机内部存放起来了。
你不必多费这个心思。
python中的进制转换和原码,反码,补码
计算机文件大小单位
b = bit 位(比特)
B = Byte 字节
1Byte = 8 bit #一个字节等于8位 可以简写成 1B = 8b
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
1EB = 1024PB
进制分类
二进制:由2个数字组成,有0 和 1 python中标志:0b
八进制:由8个数字组成,有0,1,2,3,4,5,6,7 python中标志:0o
十进制:有10个数字组成,有0,1,2,3,4,5,6,7,8,9 python中标志:无
十六进制:有16个数字组成,有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f(进制字母大小写都可以,分别代表10,11,12,13,14,15) python中标志:0x
python中的进制转换:
其他进制转换为十进制:int(相应进制)
其他进制转换为二进制:bin(相应进制)
其他进制转换为八进制:oct(相应进制)
其他进制转换为十六进制:hex(相应进制)
二进制 转化成 十进制:
例: 0b10100101
运算:1* 2^0 + 0* 2^1 + 1* 2^2 + 0* 2^3 + 0* 2^4 + 1* 2^5 + 0* 2^6 + 1* 2^7=
1 + 0 + 4 + 0 + 0 + 32 + 0 + 128 = 165
八进制 转化成 十进制:
例: 0o127
运算:7*8^0 + 2*8^1 + 1*8^2 = 7+16+64 = 87
十六进制 转化成 十进制:
例: 0xff
运算:15*16^0 + 15*16^1 = 255
十进制 转化成 二进制:
426 = 0b110101010
运算过程: 用426除以2,得出的结果再去不停地除以2,
直到除完最后的结果小于2停止,
在把每个阶段求得的余数从下到上依次拼接完毕即可
十进制 转化成 八进制:
426 = 0o652
运算过程: 用426除以8,得出的结果再去不停地除以8,
直到除完最后的结果小于8停止,
在把每个阶段求得的余数从下到上依次拼接完毕即可
十进制 转化成 十六进制:
运算过程: 用426除以16,得出的结果再去不停地除以16,
直到除完最后的结果小于16停止,
在把每个阶段求得的余数从下到上依次拼接完毕即可。
相关推荐:《Python视频教程》
原码,反码,补码
实际人们看到的数字是原码转化之后显示出来的。
而原码是通过补码得到的。
计算机的所有数据在底层都是以二进制的补码形式存储。
***进制转换的时候需要先把内存存储的补码拿出来变成原码在进行转换输出***
反码:二进制码0变1,1变0叫做反码,反码用于原码补码之间的转换。
补码:用来做数据的存储运算,可以实现计算机底层的减法操作,因而提出(可以表达出一个数的正负)。
也就是说默认计算机只会做加法,例:5+(-3) = 5 - 3。
乘法除法是通过左移和右移 来实现。
正数高位补0,负数高位补1。
正数:
原码 = 反码 = 补码
负数:
反码 = 原码取反(除高位)
补码 = 反码加1
反码 = 补码减1
原码 = 反码取反(除高位)
我们会发现,在取反前减1和在取反后加1的效果是一样的,这就和-2-1 = -(2+1)一个道理,所以会得出这样的规律:
原码 = 补码取反加1
补码 = 原码取反加1
一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 叫符号位正数为0, 负数为1。
比如
正数1在计算机中的存储即为
0 00000000000000000000001
负数1 在计算机中的存储即为
1 00000000000000000000001
一个正数,转换为二进制位就是这个正数的原码。负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码。
正数的反码就是原码,负数的反码等于原码除符号位以外所有的位取反。
正数的补码与原码相同,负数的补码为 其原码除符号位外所有位取反(得到反码了),然后最低位加1。
所以原码,反码,补码正数情况下是一致的,负数情况下是不一致的。
计算机的运算过程实际就是补码相加的一个过程。
比如-2 + 3
-2 的原码为
1 000000000000000000000000010
反码为:
1 111111111111111111111111101
补码为:
1 111111111111111111111111110
3的原码为
0 000000000000000000000000011
反码为:
0 000000000000000000000000011
补码为:
0 000000000000000000000000011
那么二者补码相加结果为
1 111111111111111111111111110
+
0 000000000000000000000000011
=
10 000000000000000000000000001(计算机存储为32位,故前面溢出的1被舍弃,高位为0)
0 000000000000000000000000001
结果为1
再比如-2 + 1
-2 的原码为
1 000000000000000000000000010
反码为:
1 111111111111111111111111101
补码为:
1 111111111111111111111111110
1的原码为
0 000000000000000000000000001
1的反码为:
0 000000000000000000000000001
1的补码为:
0 000000000000000000000000001
二者的补码相加结果为
1 111111111111111111111111110
+
0 000000000000000000000000001
=
1 111111111111111111111111111
得出的补码转化为原码, 最低位减一得到反码,然后除符号位外所有位取反,得到结果
1 000000000000000000000000001
结果为1