Python进制和字符串
1.进制
a.十进制(所有的数都是十进制的数)
基数:0,1,2,3,4,5,6,7,8,9
进位:逢10进1
每一位的值:
123=3*10^0+2*10^1+1*10^2
b.二进制(需要加前缀 0b)
基数:0,1
进位:逢2进1
每一位的值:
11011=1*2^0+1*2^1+0*2^3+1*2^4=27
#所有的二进制都是由0,1组成
c.八进制(需要加前缀 0o)
基数:0,1,2,3,4,5,6,7
进位:逢8进1
每一位的值:
111=1*8^0+1*8^1+1*8^2=73
d.十六进制(需要加前缀 0x)
基数:0-9,a-f(A-F)
进位:逢16进1
每一位的值:
111= 1*16^0+1*16^1+1*16^2= 273
2.进制之间的转换
a.其他进制转换成十进制:每一位上的数乘以进制次幂数,然后求和。
b.十进制转其他进制:辗转取余法。
直接除其他进制的数,得到的余数就是
c.二进制转八进制:每3位二进制转换成1位
八进制转二进制,1位八进制转换成3位二进制
671 --> 110 111 001
d.二进制转十六进制:每4位二进制转换成1位
十六进制转而进制:1位十六进制转换成4位二进制
67---> 0110 0111
1.bin(整数):将括号中的整数,转换成二进制形式
print(bin(10)) ----0b1010
print(bin(0o56))---0b101110
2.oct(整数):将括号中的整数,转换成八进制形式
print(oct(98))---0o142
3.hex(整数):将括号中的整数,转换成十六进制形式
print(hex(46))----0x2e
2.原码反码和补码
a.原码:整数数字的二进制形式
b.反码:负数的反码就是这个数的符号位不变,然后其他位置上的数取反(0->1,1->0)
c.补码:负数的补码就是它的反码加1
#正数的补码和反码就是它本身
-10 的原码 10000000 00001010
-10 的反码 11111111 11110101
-10 的补码 11111111 11110110
#最高位是符号位,如果正数符号位为0,负数为1
3.位运算
a.& (按位与) :两个都为1结果才是1,否则为0
b.| (按或与):只要有一个为1,结果就是1;两个都为0,结果才是0
c.^(异或):不同为1,相同为0
d.~(取反):将每一位取反
e.<<(左移)
将补码向左移动指定的位数,最后面补指定个数的0
规律(正负数都实用):m << n位 == m*(2^n)
f.>>(右移)
将补码向右移动制定的位数,符号位不变,在符号位的后面补指定个数的0(正数)和1(负数)
规律(正数实用):m >> n == m//(2^n)
位运算只针对于整数!!!
4.认识字符
1.什么是字符串
字符串(str)
python中通过单引号或双引号引起来的字符就是字符串。
字符串中引号中的字符集,就是由各自不同的字符来组成的。
2.Unicode编码
python中字符串中字符采用的是Unicode编码。
Unicode编码,是通过两个字节来对一个字符进行编码,(0~2^16-1)它几乎包含了世界上所有的符号。
ASCII编码:是通过一个字节来对一个字符进行编码
Unicode编码中包含了ASCII码表。
chr(数字):获取数字在Unicode编码表中对应的字符,返回的是一个只有一个字符的字符串
ord(字符):获取字符对应的Unicode码
可以直接在字符串中写字符对应的编码值,格式:\u四位的十六进制
str1= '\u4e00\u4e01'
print(str1)
一丁
3.转义字符(适用于所有语言)
一些特别和具有特殊意义的字符,直接放在字符串中无效,需要通过\来转义
\n --->换行
\'----> '
\t ---> 制表符
\\---->\
\"--->"
str1 = 'sdh\nh'
str1 = '\thello\world'
print(str1)
hello\world
网友评论