计算机基础(一)

1.进制

计算机底层都是0101的形式存在

  • 二进制
    2 进 1
  • 八进制
    8 进 1
  • 十进制
    10 进 1
  • 十八进制
    16 进 1
    进制有多种表现形式,可以相互转换

1.1在python中的进制转换

在这里插入图片描述

1.2 进制之间的转换

十进制转化为其他进制

v1 = bin(25) #十进制转化为二进制
v2 = oct(25) #十进制转化为八进制
v3 = hex25#十进制转化为十六进制
0b==>二进制
0o==>八进制
0x==>十六进制
# 都是以字符串形式存在

其他进制转化为十进制

int("0b1101",base=2)
int("0o27",base=8)
int("0x1e",base=16)

2.计算机中的单位

  • bit,位
  • B(byte),字节
8位是一个字节
10010110 一个字节
10010110 10010110 两个字节
  • KB(kilobyte),千字节
1024个字节 = 1KB
  • M,兆
1024KB = 1M
  • G,千兆
1G = 1024M
  • T,万亿字节
1T = 1024G

假设一个汉字需要2个字符(2B = 16位来表示,如:1000101011001100),那么1G流量可以通过网络传输多少文字呢?

3. 编码

编码、文字和二进制之间的一个对照表

3.1 ASCII编码

ASCII规定使用1个字节来表示字母与二进制之间的关系

00000000
00000001
........
11111111
一共2**8 = 256种
如果程序用了ASCII编码,那么意味着程序中只能出现英文

3.2 gb-2313编码

迭代后有了gbk编码,包含中日韩等亚洲文字
在与二进制对应关系时,有如下逻辑:

  • 单字节表示,用一个字节表示对应关系–向下兼容ascii 2**8 = 256
  • 双字节表示,用两个字节表示对应关系 2**16 = 65536

3.3 Unicode

Unicode被称为万国码,为全球文字都分配了一个码位

  • usc2
用固定的两个字节去表示一个文字
00000000  00000000     我
........   ........
2**16 = 65535
  • ucs4
用固定的四个字节去表示一个文字
........   ........  ........  ........     我
2**32 = 4294967296

缺点:ucs2和usc4都太浪费空间,所以在文件存储和网络传输时,不会直接使用Unicode;而在内存中会使用Unicode(固定字节,好断句)

3.4 utf-8

是对Unicode的压缩,用尽量少的二进制去与文字进行对应
中文一般占三个字节

python相关的编码

字符串(str"你好"      unicode处理         一般在内存
字节(byte)     "ahdkgkjfgkshaf"   utf-8  or  gbk编码   一般用于文本或者网络处理

v1 = '我'
v2 = '我'.encode("utf-8")
v2 = '我'.encode("gbk")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值