一、进制
1.了解进制
常用的进制有 十进制、十六进制、八进制、二进制。计算机在存储数字的时候都是以二进制的形式去存的
进制 |
举例 |
基数 |
进位 |
计算方式 |
十进制 |
10,100 |
0~9 |
逢十进一 |
各位数字乘以10的相应次方求和 |
二进制 |
01,10,110 |
0,1 |
逢二进一 |
各位数字乘以2的相应次方求和 |
八进制 |
71,17 |
0~7 |
逢八进一 |
各位数字乘以8的相应次方求和 |
十六进制 |
1f,2D |
0~9加上a(A)-f(F) |
逢十六进一 |
各位数字乘以16的相应次方求和 |
进制之间的转换
当前进制 |
转换的进制 |
转换方式 |
举例 |
其他 |
十进制 |
每一位上的数乘以进制幕次数,然后求和 |
(2)110=6,(8)12=10,(16)1F=31 |
二进制 |
八进制 |
每三位二进制转换成一位八进制 |
(2)110 111 001=(8)617 |
八进制 |
二进制 |
一位八进制转换成三位二进制 |
(8)671=(2)110 111 001 |
十六进制 |
二进制 |
一位的16进制转换成4位的二进制 |
(16)67=(2)0110 0111 |
二进制 |
十六进制 |
每四位二进制转换成一位 |
(2)0110 0111=(16)67 |
2.python对进制的支持
进制 |
格式 |
举例 |
十进制 |
直接输入 |
10,100 |
二进制 |
加前缀0(数字0)b |
0b0101,0b110 |
八进制 |
加前缀0(数字0)o |
0o56,0o17 |
十六进制 |
加前缀0(数字0)x |
0x1F,0x2a |
3.python中进制之间转换
bin(整数) :将括号中的整数,转换成二进制形式
print(bin(10), bin(0o56), bin(0xaf))
oct(整数) :将括号中的整数,转换成八进制形式
print(oct(10), oct(0b110110), oct(0xaf))
hex(整数) : 将括号中的整数,转换成十六进制形式
print(hex(10), hex(0b110110), hex(0o56))
二、源码,反码和补码
计算机在存数字的时候,存的是数字的二进制的补码。计算机内存的最小单位是位:1位只能存储两个状态( 8位 = 1字节 )
1.原码:整数数字的二进制形式
十进制的10的原码就是:1010
最高位是符号位,如果正数符号位为0,负数符号位为1
10的原码 00000000 00001010
-10的原码 10000000 00001010
2.反码
正数的反码是它的原码
负数的反码就是这个数的原码的符号位不变,然后其他位置上的数取反(0->1,1->0)
-10 -> (原码)10000000 00001010 ->(反码)11111111 11110101
3.补码
正数的补码就是它的原码
负数的补码是它的反码加1
-10 -> (反码)11111111 11110101 -> (补码)1111111 11110110
总结:总结:正的反码和补码都是原码;负数的补码是反码加1,反码是原码符号位不变,其他位取反
三、位运算
位运算符 |
格式 |
结果 |
举例 |
&(按位与) |
数字一 & 数字二 |
两个都为1结果才是1,否则为0 |
3 & 2 --> 00000011 & 00000010 == 00000010 |
|(按位与) |
数字一 | 数字二 |
只要有一个为1,结果就是1;两个都为,结果才是0 |
-3 | 2 --> 11111101 | 00000010 = (补)11111111 = (原)10000001 |
^(异或) |
数字一 ^ 数字二 |
不同为1,相同为0 |
-3^2 --> 11111101 ^ 00000010 = (补)11111111 = 10000001 |
~(取反) |
数字一 ~ 数字二 |
将每一位取反 |
~3 ---> ~00000011 = 11111100(补) = 10000100 |
<<(左移) |
数字一 <<位数 |
将补码向左移动指定的位数,符号位不变,在最后面补指定个数的0 |
10 << 3=80 |
>>(右移移) |
数字一 >>位数 |
将补码向右移动指定的位数,符号位不变,在符号位的后面补指定个数的0(正)或者1(负) |
10 >> 1=5 |
四、认识字符串(str)
1.什么是字符串
python中通过单引号或者上引号引起来的字符集就是字符串
字符串中引号中的字符集,就是又各种不同的字符来组成的,如下:
'abhsjjd'
'26238'
'海金沙'
'^&#@(@&@*'
'😆'
'in'
'223hdu话说接电话**&&'
"uuk"
"237ashs"
'a'
2.Unicode编码
python中字符串中字符采用的是Unicode编码
Unicode编码:是通过两个字节来对一个字符进行编码(0~ 2^16-1)。它几乎包含了世界上所有的符号
ASCII编码:是通过一个字节来对一个字符进行编码
Unicode编码中包含了ASCII码表
chr(数字): 获取数字在Unicode编码表中对应的字符,返回的是只有一个字符的字符串
ord(字符): 获取字符对应的Unicode码
注:可以直接在字符串中写字符对应的编码值,格式:\u四位的十六进制
3.转义字符(适用于所有语言)
一些特能和具有特殊意义的字符,直接放在字符串的引号中无效,需要通过\来转义
转义字符 |
描述 |
(在行尾时) |
续行符 |
\\ |
反斜杠符号 |
\' |
单引号 |
\" |
双引号 |
\a |
响铃 |
\b |
退格(Backspace) |
\e |
转义 |
\000 |
空 |
\n |
换行 |
\v |
纵向制表符 |
\t |
横向制表符 |
\r |
回车 |
\f |
换页 |
\oyy |
八进制数yy代表的字符,例如:\o12代表换行 |
\xyy |
十进制数yy代表的字符,例如:\x0a代表换行 |
\other |
其它的字符以普通格式输出 |
网友评论