进制
计算机在存储数字的时候都是以二进制形式存的。
十进制,十六进制,八进制,二进制
a.十进制
基数:0123456789,进位:逢十进一
b.二进制
基数:0,1;进位:逢二进一
c.八进制
基数:01234567;进位:逢八进一
d.十六进制
基数:0123456789abcdef;进位:逢十六进一
进制之间的转换
其他进制转换成十进制:每位数乘以对应次方数
十进制转其他进制:取余数法,除进制取余数直到商为零,由上至下,然后倒过来写
二进制转八进制:每三位二进制转成一位八进制
八转二:一位八进制转三位二进制
二进制转十六进制:每四位二进制转化成一位十六进制
十六转二:一位十六进制转四位二进制
Python对进制支持
Python支持二进制,八进制,十进制,十六进制
十进制:直接写的数字都是十进制
二进制:需要加前缀:0b,后面的基数必须满足二进制范围
八进制:需要加前缀:0o,基数不超过7
十六进制:需要加前缀:0x,基数不超过f
转化函数
bin(整数):把括号内的整数转化成二进制
oct(整数):把括号内的整数转换成八进制
hex(整数):把括号内的整数转换成十六进制
原码反码与补码
计算机内存的最小单位是位,两个状态,8位=一个字节
最高位是符号位,正数符号位为0,负数符号位为1
原码:整数数字的二进制形式
正数的反码,补码是他本身
负数反码就是一个数的符号位不变,其他位置上的数取反
负数的补码是它的反码加1
Q:为什么计算机存储数据的时候存补码?
A:因为硬件只能做加法不能做减法,对负数的加法有问题
位运算
运算符:&按位与,|按位或,异或,取反,左移,右移
按位与&:
数字一&数字二,两个数字的二进制数都为1才是1,否则为零
作用:让指定位置上的值保留,让指定位上的数置零
按位或|:
数字一|数字二,两个数字的二进制数只要有一个为1,结果就为1
异或^:
数字一^数字二,两个数字的二进制数不同为1,相同为0
取反~:
~数字,数字的二进制数每一位取反
左移:
数字<<位数,将数字原码左移指定位数,符号位不变,
在右边正数用0补齐,负数用1补齐。
规律:左移n位,则乘2^n
直接乘2的n次,速度快
右移:
数字>>位数,将数字原码右移指定位数,符号位不变,
在符号位右边正数用0补齐,负数用1补齐。
规律:右移n位,则除2^n(只适用于正数)
字符串
字符串str
概念:在Python中通过""或''引起来的字符集就是字符串
字符串中引号中的字符集就是由各种不同的字符组成的
Unicode编码
Python中的字符串的字符采用的是Unicode编码
Unicode通过两个字节对一个字符进行编码,同时包含ASCII表。
chr(数字):获取数字在Unicode表中对应的字符,返回一个只有一个字符的字符串
ord(只有一个字符的字符串):获取该字符在Unicode表中对应的编码
可以直接在字符串中写字符对应的编码值,格式:/u+十六进制的编码值
转义字符(适用于所有语言)
一些特殊功能和具有特殊意义的字符直接放在字符串的引号中无效,需要通过反斜杠来转义
换行:\n
制表符:\t
在字符串中打出引号\'
打出\:\\
网友评论