美文网首页
Python基础总结-02(进制和字符串)

Python基础总结-02(进制和字符串)

作者: zxhlcl | 来源:发表于2018-09-27 19:39 被阅读0次

一、进制和字符串

进制

(1)计算机在存储数字的时候都是以二进制的形式存储
(2)主要掌握二进制、八进制、十进制、十六进制的进位规则及进制之间的转换
(3)Python对进制的支持:支持二进制、八进制、十进制和十六进制的整数
   二进制:0b011;八进制:0o756;十六进制:0xDF12
   进制转换:(结果为字符串)
   bin(整数)-->转换成二进制
   oct(整数)-->转换成八进制
   hex(整数)-->转换成十六进制


进制转换.png

原码、补码、反码

计算机在存储数据的时候,是以二进制补码的形式存储的;因为计算机只能进行加法操作,只能存储补码才能在负数的加法有效;
计算机内存的最小单位是位(bit):1位只能存两个状态(0或1)
注意:反码和补码只对负数而言,正数的反码和补码就是原码本身
(1)原码:整数数字的二进制形式
(2)反码:负数的反码就是这个数的原码的符号位不变,其他位数取反
(3)补码:负数补码就是它的反码加1

位运算

符号:&(按位与)、|(按位或)、^(异或)、~(取反)、>>(右移)、<<(左移)
(1)按位与:数值1 & 数值2
二进制的每一位两个都为1,结果为1 ,否则为0
(2)按位或:数值1 | 数值2
二进制的每一位只要有一个为1,结果为1,否则为0
(3)异或:数值1 ^ 数值2
二进制的两位不同为1,相同为0
(4)取反:~数值
将每一位取反
(5)左移:数值 <<位数
将补码向左移动指定的位数,符号位不变,在符号位的后面补指定个数的0
特例:当负数左移的位数较多时,符号位被覆盖,此时没有符号位,但计为负数
例如:-10<<4
10001010(原码) --> 11110101(反码) -->11110110(补码)
01100000(补码) --> 01011111(反码) -->10100000(原码)
规律:m<<n == m*(2^n)

print(10<<1,10<<2,10<<3,10<<4,10<<5)

结果为:20 40 80 160 320
注意:遇到某一个数需要乘以2^n时,用左移位运算计算效率更高
(6)右移:数值>>位数
将补码向右移动指定的位数,符号位不变,在符号位的后面补指定个数的0(正数)或1(负数)
规律(只适用于正数):m>>n == m//(2^n)

print(1024>>1,1024>>2,1024>>3,1024>>4,1024>>5)

结果为:512 256 128 64 32
注意:遇到某一个正数需要除以2^n时,用左移位运算计算效率更高

二、字符串

python中通过单引号或者双引号引起来的字符集就是字符串,字符串中的字符集是由不同的字符组成

Unicode编码

python字符串中的字符都是采用Unicode编码
世界上最常用的两种编码表:Unicode和ASCII
Unicode码表是通过2个字节来对一个字符进行编码(0~2^16-1),几乎包含了世界上所有的符号;ASCII码表是通过1个字节对一个字符进行编码(0~2^7)
Unicode码表中包括了ASCII码表
chr(数字):获取数字在Unicode编码中对应的字符
ord(字符):获取字符对应的Unicode码

转义字符

一些特殊功能和具有特殊意义的字符,直接放到字符串的引号中无效,需要通过\来转义
常见的转义字符:
\n --> 换行
' --> '
\t --> 制表符
\ --> \

相关文章

网友评论

      本文标题:Python基础总结-02(进制和字符串)

      本文链接:https://www.haomeiwen.com/subject/qejeoftx.html