字符、字节、位等之间的转换(自我收集,欢迎指教)

前段时间写加密RSA算法,期间有个**长度问题。**长度决定可加密的字段的长度,涉及到字节字符和位之间的转换。当时就有点迷糊,表情就是这样的。
字符、字节、位等之间的转换(自我收集,欢迎指教)
然后我决定总结一下,结果如下:

bit(位),也就是比特位,简称b,计算机数据的最小单位,数据存储的最小单位。每个二进制数字0或者1就是1个位;

Byte(字节),简称B。

B与b不同,注意区分,KB是千字节,Kb是千比特位。
1B=8b
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB

字符(汉字和汉字标点符号都算字符)

ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值-128,最大值127。如一个ASCII码就是一个字节。

UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。中文标点占三个字节,英文标点占一个字节

Unicode编码:一个英文等于两个字节,一个中文(含繁体)等于两个字节。中文标点占两个字节,英文标点占两个字节

然后说一下rsa**长度对应的加密字段的长度。

计算公式是:**长度位数转化成字节数减11(具体为啥减11不大清楚)

1024位**可加密长度为117字节

2048位**可加密长度为245字节

目前查到的只有这些,有错误的欢迎大家留言改正!!!
字符、字节、位等之间的转换(自我收集,欢迎指教)

本次总结完毕(@LcFireRabbit)