day2-进制和字符串-总结

2018-09-27  本文已影响0人  _桑心人

2.进制

1.十进制

例如:123、133、56、5

2.二进制

----所有的二进制数都是由0和1组成(例如): 011101

3.八进制

4.十六进制

88 89 af aaffee 89

5.进制之间的转换

--实例
123: (2)111100  (8)173  (16)7B
--实例
(8)671 --> (2)110 111 001 

十六转二:一位十六进制转换为4位的二进制

--实例
(16)67 --> (2)0110 0111

6.python对进制的支持

---支持通过二进制、八进制和十六进制的形式来直接表示一个整数

------bin(整数) --> 将括号中的整数转换成二进制形式的数
------oct(整数) --> 将括号中的整数转换成八进制形式的数
------hex(整数) --> 将括号中的整数转换成十六进制形式的数

3.原码反码补码

-----计算机在存数字的时候,存的是数字的二进制的补码

-----计算机内存的最小单位是位:1位只能存储两个状态 8位 == 1字节

十进制的10的原码就是:1010
最高位是符号位,如果是正数符号为0,负数符号为1
实例
10的原码  00000000 00001010
-10的原码 10000000 00001010
正数的反码就是它的原码
负数的反码就是1这个数的原码的符号为不变,然后其他位置上的数取反
实例
10 -> (原码)00000000 00001010 ->(反码) 11111111 11110101
正数的反码就是它的原码
负数的 补码是它的反码加1
实例
-10 -> (反码)11111111 11110101 -> (补码)11111111 11110110

4.位运算

-----计算存数存补码,计算的时候也是补码,最后结果看的时候看原码

-----位运算:&(按位与操作),|(按位或),^(异或),~(取反) >>(右移),<<(左移)

数字1 & 数字二:二进制的每一位,两个都为1结果才是1否则为0
实例
3 & 2 --> 00000011 & 00000010 = 00000010
 -3 & 2 --> 11111101 & 00000010 = 00000000
作用:让指定位上数置为0,或者保留某一位上的值
数字1 | 数字2:只要有一个位1,结果就为1
实例
3 | 2 --> 00000011 | 00000010 = 00000011
-3 & 2 --> 11111101 & 00000010 = 11111111(补) = 10000001(原)
数字1 ^ 数字2:不同为1,相同为0
实例
3 ^ 2 --> 00000011 ^ 00000010 = 00000001
-3 ^ 2 --> 00000011 ^ 00000010 = 11111111(补) = 10000001(原)
~数字:将每一位取反
实例
~3 ---> ~00000011 = 11111100(补) = 10000100
~-3 ---> ~11111101 = 00000010
数字 << 位数:将补码 向左移动指定的位数,符号位不变,在数字位的后面补0(正)或补1(负)
规律
规律(正数和负数都使用):m << n == m * (2^n)
数字 >> 位数:将补码向右移动指定的位数,符号位不变,在符号位的后面补0(正)或补1(负)
规律(只适用于正数)
m >> n == m // (2^n)
实例
print(10 >> 1)
print(-10 >> 1)
print(10 >> 2)
print(-10 >> 2)
运行结果
5
-5
2
-3
[Finished in 0.3s]

5.字符串(str)

python中通过单引号或者双引号引起来的字符集就是字符串字符串中引号中的字符集,就是由各种不同的字符来组成的
实例
'abhsjjd'
"26238"
'哈快速减肥'
'#$%#^^'
'65165hvh$W$^看就看'
python中的字符串中字符采用的是Unicode编码
Unicode(0~2^16-1)编码:是通过两个字节来对一个字符几乎 包含了全世界所有的符号
ASCII编码:是通过一个字节来对一个字符进行编码
Unicode编码中包含了ASCII码表
------chr(数字):获取数字在Unicode编码表中对应的字符
实例
print(chr(97))
print(chr(0x1813))
print(chr(0x1b02))
运行结果
a
᠓
ᬂ
[Finished in 0.2s]
------ord(字符):获取字符对应的Unicode码
实例
print(ord('余'), ord('婷'))
print(ord('%'))
print(0xffff)
运行结果
20313 23159
37
65535
[Finished in 0.2s]
------可以直接在字符串中写对应的编码值,格式:\u四位的十六进制的编码值
实例
str1 = '\u4e00'
print(str1)
str1 = '\u4e00\u4e02'
print(str1)
运行结果
一
一丂
[Finished in 0.2s]
一些特殊功能和具有特护意义的字符,直接放在字符串中的引号中无效,需要\转义
------ \n --> 换行
实例
str1 = 'huy\nushs'
print(str1)
运行结果
huy
ushs
[Finished in 0.2s]
------ \ ' --> '
实例
str1 = 'hello\'word'
print(str1)
运行结果
hello'word
[Finished in 0.2s]
------ \t --> 制表符
------ \ \ --> \
实例
str1 = 'hello\'wo"rd\a'
print(str1)
运行结果
hello'wo"rd�
[Finished in 0.2s]
上一篇下一篇

猜你喜欢

热点阅读