bit byte 和各进制关系(位、字节、字符、进制)、常见编码格式

您所在的位置:网站首页 16进制610转换二进制 bit byte 和各进制关系(位、字节、字符、进制)、常见编码格式

bit byte 和各进制关系(位、字节、字符、进制)、常见编码格式

2024-06-30 15:49:22| 来源: 网络整理| 查看: 265

文章目录 1. bit,也叫比特、位2. Byte,字节3. Character,字符4. 进制二进制与八进制a. 二进制转八进制b.八进制转二进制 二进制和十进制a. 二进制转十进制b. 十进制转二进制 二进制和十六进制a. 二进制转十六进制b. 十六进制转二进制 5. 常见的编码格式对比(1)ASCII(American Standard Code for Information Interchange)美国标准信息交换代码(2)GBK编码(3)Unicode编码(4)UTF-8编码Unicode符号范围(十六进制) | UTF-8编码方式(二进制) 先看一下几个概念

1. bit,也叫比特、位

bit是计算机中最小的计量单位,我们常见的就是32bit和64bit,这里是指CPU一次处理数据的能力是32位还是64位。 1个比特值只能是 0 或 1,它是一个二进制位,即 1 bit = 1个二进制位

2. Byte,字节

Byte是计算机中次小的计量单位,是内存布局中的常用单位。 字节 与 位 的关系: 1 字节 = 8 bit 即 1 字节 = 8 个二进制位

关于字节单位除了Byte, 还有KB(千字节)1 KB = 1024 Byte、MB、GB、TB。

3. Character,字符

字符是计算机中使用的字母、数字、字和符号等,一般 1个英文字符或字符数字占用一个字节,一个汉字占用两个字节,当然在不同编码中汉字的字节表示是不同的。 关于字节和字符的应用,常见的比如java语言的char字符类型(16位)和byte类型(8位)。

4. 进制

在计算机中进制有 二进制、八进制、十进制和十六进制。

二进制 Binary,简称 B,二进制只有 0 和 1 两个值,计算方法即 逢二进一。八进制 Octcal,简称 O(因O和0容易混淆,八进制用 数字+ Q 来表示)八进制有 0~7 一共8个值,计算方法 逢八进一。十进制 Decimal,简称 D,十进制有 0~9 一共10个值,计算方法 逢十进一。十六进制 Hexadecimal,简称 H,十六进制有 0~9 和字母 A ~ F一共16个值来表示“0 ~15”,计算方法 逢十六进一。其中A表示10,B表示11,以此类推。

所有进制都可以在数字后+缩写来表示进制,比如 1B表示二进制、7Q表示八进制、5D表示十进制、1DH表示十六进制,进制缩写在最后一位。

计算机是以二进制作为基础,在此之上上拓展了八进制、十进制、十六进制等。学过数字电路的人应该了解,进制语中数字电路的高低电平、开关、有无、真假等都是通过二进制来表示,逻辑电路也是0和1。二进制的特点就是进制简单、方便转换到其他任一进制、运算规则也简单,比较适用于运算。但是由于二进制在表示大数据时位数太多不便于存储记录,八进制、十六进制也出现来将二进制转换成对应进制方便收集数据。其中十六进制使用频率要高于八进制。

二进制与八进制 a. 二进制转八进制

三合一法,将二进制数从小数点开始向左(或向右)每三位做分割,三位一组,小数点左侧不足三位的左边补0,小数点右不足三位的右侧补零,然后按照000、001、010、011、100、101、110、111分别转化为0、1、2、3、4、5、6、7,即可把原来的二进制数转化为八进制数。 比如:

1101 1111.1101 B 011 011 111 . 110 100 =》3 3 7.6 4Q

b.八进制转二进制

两种方法,把每个数字看成单独分组,单独用二进制表示(4 2 1)

374Q 3 => 3是2+1,即 0 1 1 7 => 7是4+2+1,即 1 1 1 4 => 4是4,即 1 0 0 拼接就是011 111 100 =》11111100B

第二种 将每个数字除以2取余,余数自下而上列出,不够三位左侧补零

374Q 3:3/2=1余1 1/2=0余1 自下而上只两位,左侧补零 011 7:7/2=3余1 3/2=1余1 1/2=0余1 自下而上够三位,111 4:4/2=2余0 2/2=1余0 1/2=0余1 自下而上够三位,100 拼接一起就是 011111100 =》11111100B

二进制和十进制 a. 二进制转十进制

将二进制按权展开,每一位都是2的N次幂,小数部分是2的-N次幂。 在这里插入图片描述 关于二进制:java中byte类型取值范围是 -128~127,而C#中byte类型范围则是0 ~256,这是因为java中的byte类型虽然是八位,但是首位用来表示正负,当首位是0时为正数,首位是-1时为负数。因此若是带符号的二进制,需要将首位去掉再计算。

比如上述 1011 0111若首位表示正负,则表示为负数,去掉1后,将剩下的取反操作,也就是它的反码,所谓反码就是0和1相互转换,那么处理后就变为: 100 1000,对应数为72,再+1后取负,则为 -73。

总结二进制带符号转换十进制流程: 去首位,若为负 取反 +1,若为正 直接计算 不需要+1,最后加上符号

b. 十进制转二进制

十进制整数部分除以2取余,小数部分乘2取整 随便找个例子,大家了解一下就行,不想算的打开程序员计算器转换 在这里插入图片描述 在这里插入图片描述

二进制和十六进制 a. 二进制转十六进制

和八进制的三合一类似,转十六进制时用四合一方法,对应8421

无符号: 001001001010 => 0010 0100 1010 0010 对应2位为1,则0010 是2 0100 对应4位为1,取4 1010对应8和2位为1,取10即a 对应十六进制为24A

b. 十六进制转二进制

每个数字分开除以2取余,不足四位整数左侧补零,小数右侧补零

24A 2 =》 0010 4 =》 0100 A =》1010

写个例子,算出十进制下586和-586的三种进制值

586: 二进制: (整个数除以2取余)1001001010B 八进制:(二进制三合一 001 001 001 010)1112Q 十六进制:(二进制四合一 0010 0100 1010)24A

-586: 二进制:(586的二进制四个一组,在最左面+1即表示负号位) 0010 0100 1010 => 1000 0010 0100 1010 (整体除符号位反码) => 1111 1101 1011 0101 (补码+1) => 1111 1101 1011 0110 八进制: (对应最后的二进制转八进制)176666Q 十六进制:(对应最后的二进制转十六进制)FDB6

在这里插入图片描述 在这里插入图片描述

5. 常见的编码格式对比 (1)ASCII(American Standard Code for Information Interchange)美国标准信息交换代码

ASCII 是基于拉丁字母的一套编码系统,主要用于显示现代英语和其他西欧语言。是现今最通用的单字节编码系统,等同于国际标准 ISO/IEC 646。 ASCII 前128个使用指定的 7位二进制数(剩下的1位二进制为0)来表示所有的大小写字母、数字0~9、标点等128中字符,也被称为 标准ASCII 码。 后128个称为扩展ASCII码,用来表示一些特殊符号、图形、外来语字母等。

(2)GBK编码

由于ASCII编码不支持中文,国人就定义了一套编码规则,即GBK码。 GB2312: 当字符小于127位时,与ASCII的字符相同,但当两个大于127的字符连接在一起时,就代表一个汉字,第一个字节称为高字节(从0xA1-0xF7),第二个字节为低字节(从0xA1-0xFE),这样大约可以组合7000多个简体汉字。 GBK标: 由于汉字太多,有的汉字无法用GB2312表示,所以重新定义了中文编码:只要第一个字节是大于127,就固定表示这是一个汉字的开始,不管后面跟的是不是扩展字符集里的内容。GBK标包括了GB2312的所有内容,同时新增了近20000个新的汉字(包括繁体字)和符号。 GB18030又扩展了近几千个少数民族的字符。 这一系列编码的标准统称为"DBCS"(Double Byte Charecter Set 双字节字符集)。

(3)Unicode编码

由于每个国家都定义一套自己的编码标准,结果相互之间谁也不懂谁的编码,因此 ISO(国际标准化组织)定义了一套编码方案来解决所有国家的编码问题,就是Unicode。

注意Unicode不是一个新的编码规则,它是一套字符集(为每一个「字符」分配一个唯一的 ID(学名为码位 / 码点 / Code Point)),可以将Unicode理解为一本世界编码的字典。

ISO规定:每个字符必须使用俩个字节,即用16位二进制来表示所有的字符,对于ASCII编码表里的字符,保持其编码不变,只是将长度扩展到了16位,其他国家的字符全部统一重新编码。 由于传输ASCII表里的字符时,实际上可以只用一个字节就可以表示,所以,这种编码方案在传输数据比较浪费带宽,存储数据比较浪费硬盘。

(4)UTF-8编码

为了解决 Unicode比较浪费网络带宽和硬盘 这个问题,就在Unicode的基础上,定义了一套编码规则(将「码位」转换为字节序列的规则(编码/解码 可以理解为 加密/解密 的过程)),这个新的编码规则就是UTF-8,采用1-4个字符进行传输和存储数据。

编码规则:使用下面的模板进行转换

Unicode符号范围(十六进制) | UTF-8编码方式(二进制)

0000 0000-0000 007F | 0xxxxxxx 0000 0080-0000 07FF | 110xxxxx 10xxxxxx 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

utf-8区分每个字符的开始是根据字符的高位字节来区分的,比如用一个字节表示的字符,第一个字节高位以“0”开头;用两个字节表示的字符,第一个字节的高位为以“110”开头,后面一个字节以“10开头”;用三个字节表示的字符,第一个字节以“1110”开头,后面俩字节以“10”开头;用四个字节表示的字符,第一个字节以“11110”开头,后面的三个字节以“10”开头。

编码参考链接:https://www.cnblogs.com/klb561/p/12064095.html



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭