-
"字符"、"字节"、"二进制位" 之间的关系
2019-07-25 10:32:271 字节 = 8 二进制位 这个毋庸置疑,在每种情况下都是成立的。(字节就是所谓的 ‘KB’ 中的那个 ‘B’) 1 字符 = ?字节 “字符” 和 “字节” 对应的关系就没那么简单了,这取决于程序使用了什么样的 “编码...之前一直对这个问题一知半解,导致最近的学习中很多问题处理的模棱两可,于是终于忍无可忍,决定把这个问题系统的处理一遍。 ψ(*`ー´)ψ
1 字节 = 8 二进制位
这个毋庸置疑,在每种情况下都是成立的。(字节就是所谓的 ‘KB’ 中的那个 ‘B’)
1 字符 = ?字节
“字符” 和 “字节” 对应的关系就没那么简单了,这取决于程序使用了什么样的 “编码方式”。
用我们最熟悉的记事本做实验,先建一个空的 “ANSI” 编码格式的 .txt 文件:
可以发现,它的原本大小为 0 字节
分别填写一个英文和一个中文,观察:
得出结论:ANSI 编码方式,英文(包含英文特殊符号) = 1字节 、 中文(包含中文特殊符号) = 2字节
同理,实验 unicode 编码方式:
你会发现空的 .txt 文件在 unicode 编码方式下竟然有 2 字节的大小 !(这里不解释了就,否则就跑题了)
继续在 unicode 编码的 .txt 文件中测试英文和中文:
结论是 unicode 编码下,英文和中文都占 2 个字节。
同理实验 utf-8 ,初始大小 3 字节,英文占 1 字节,中文占 3 字节(这里就不截图了)
总结一下:
编码 英文 中文 ANSI(ASCII 的扩展) 1字节 2字节 UTF-8 1字节 3字节 Unicode 2字节 2字节 GBK 1字节 2字节
网上的老哥们说字符对应的字节数和机器长度也有关系,这里先贴出来,有大神知道的话希望帮我解释解释。
-
16进制和八个二进制位的关系
2017-05-02 15:02:28英文名称:hexadecimal number system(HEX) 它由0-9,A-F组成,字母不区分大小写。...一个字节八个比特,就是八个二进制位四个二进制数最大表示为15,就是一个16进制数,所以八位可以表示成两个16进制的数!英文名称:hexadecimal number system(HEX)
它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9;A-F对应10-15;N进制的数可以用0—(N-1)的数表示,超过9的用字母A-Z。一个字节八个比特,就是八个二进制位
四个二进制数最大表示为15,就是一个16进制数,所以八位可以表示成两个16进制的数!
-
位,字节,二进制,十六进制间的关系
2013-09-17 19:10:10位(bit)就是一个二进制位,即可表示0和1,而字节(Byte)是计算机更通用的计算单位,1字节等于8位,可以代表256个数字(在编程中可以通过这些数字作为判断),int类型一般为4字节,即32位。一个十六进制数,如0xf,...二进制,是计算机为了快速方便而采用的一种记数方式,十六进制也是一种常用的记数方式。位(bit)就是一个二进制位,即可表示0和1,而字节(Byte)是计算机更通用的计算单位,1字节等于8位,可以代表256个数字(在编程中可以通过这些数字作为判断),int类型一般为4字节,即32位。一个十六进制数,如0xf,代表16个数字,2的4次方,即4位,所以两个十六进制数如0xff就是一个字节
-
比特位与字节的关系,二进制、八进制、十六进制之间的转换,内存为什么使用十六进制?
2019-04-04 20:58:393.为什么一个字节是8位二进制,而不是其他数目?4.为什么引入八进制、十六进制?(1)二进制转换?(2)十六进制转换? 1.计算机为什么采用二进制? 因为二进制是在电路中最好控制的,只有1和0两种状态.代表接通和...文章目录
1.计算机为什么采用二进制?
最初的时候,计算机是由二极管发展而来的。每个二极管能表达二种信号,就是接通电路或关闭电路两种状态(1 & 0)如果有2个二极管,就可以根据顺序,表达出4种状态(00 & 01 & 10 & 11), 那么如果有N个二极管,那就可以表达出二的N次方(2ⁿ)个状态。根据这种理论,就可以保存的信息就很多。最终需要做的就是,00代表啥,01代表啥,11代表啥,定义好之后,所有的组合到一起,就成了语句或十进制数字了。
2.比特位(bit)与字节(Byte)的关系?
1.比特位(bit)的引入?
上面讲到二进制的引入,为了表达每一个二极管(比特位)的信息,把这个最小的信息单元叫比特位。每个比特位存放0或1。
2.字节(Byte)的引入?
1字节(byte,字节)= 8 bit
- 字节来自英文Byte,音译为“拜特”,习惯上用大写的“B”表示。
- 字节是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特(1Byte=8bit)。
- 八位二进制数最小为00000000,最大为11111111;
- 通常1个字节可以存入一个ASCII码(128个字符),2个字节可以存放一个汉字国标码。
个人理解是:
- 如果一篇英文文章没有把单词、标点、段落等分开,会非常不便于阅读,例如helloworldmynameisalien,这个你根本不知道啥意思,但是hello world, my name is alien ,你就知道啥意思了。
- 所以,计算机为了阅读二进制数,把一个字节(8位二进制)区分开来,当做一个单词或者字,然后再去阅读。
10010110 00001111 10100000 类似这样的,计算机看做为3个字
3.为什么一个字节是8位二进制,而不是其他数目?
可以看一下ASCII的定义,应为早期的ASCII为了表达出所有需要表达的字母和一些特殊符号,发现8位二进制就能基本表达所有英文字母、特殊符号了。详情可参考如下链接,这样我们就可以把8位二进制当做一个字节,去代表一个计算机能识别的最小语言单位。
3.二进制与八进制、十进制、十六进制之间的转换?
1.八进制、十六进制的定义?
八进制
- 八进制,Octal,缩写OCT或O,一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进1。一些编程语言中常常以数字0开始表明该数字是八进制。
- 八进制的数和二进制数可以按位对应(八进制一位对应二进制三位),因此常应用在计算机语言中。
十六进制
- 十六进制(英文名称:Hexadecimal),同我们日常生活中的表示法不一样,它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9,A-F对应10-15。
- 十六进制的数和二进制数可以按位对应(十六进制一位对应二进制四位)
- 内存中保存数据以及内存地址,都是十六进制
2.二进制与八进制之间的转换?
3.二进制与十六进制之间的转换?
4.二进制与十进制之间的转换?
十进制转化二进制的方法(除2倒序取余法):
用十进制数除以2,分别取余数和商数,商数为0的时候,将余数倒着数就是转化后的结果。
十进制的小数转换成二进制(小数乘二正序取整法):
小数部分和2相乘,取整数,不足1取0,每次相乘都是小数部分,顺序看取整后的数就是转化后的结果。
如上这种方法保存小数,容易产生数据精度失真的情况。原始数据可能一摸一样,但最终保存到计算机中,内容是一样的。后面会提到单精度和双精度小数的问题。
通过如上的转换,我们发现无论计算机需要存储多少位二进制,例如10101010001110101101,我们都不用担心不方便阅读的问题,因为我们可以根据不同的进制去读取,虽然存储都是以二进制形式存储的。所以,最终计算机会根据实际的应用场景,会使用十六进制、八进制的格式去存储信息。
5.二进制、八进制、十进制、十六进制对照表
十进制 二进制 八进制 十六进制 0 0 0 0 1 1 1 1 2 10 2 2 3 11 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F 16 10000 20 10 4.内存中为什么使用十六进制?
-
前面提到,我们把八个比特位当做一个字节,字节又是计算机存储信息的最小单位。如果想充分利用比特位的信息,每个比特位都完全利用上,就能充分利用每个比特位上的存储空间。(重要, 重要,重要!!!!)
-
ASCII码–百度百科 里面,总共存储了128个字符,占用的是一个字节。但其实,一个字节可以有2的8次方(2^8=256)可能,也就是说,ASCII其实还是可以拓展信息的,有一半空间没有充分利用。
-
十六进制(0–9, A、B、C、D、E、F)共计十六个数,可以理解为(2^4)个信息。
-
而一个字节是(2^8)个信息, 那么一个字节正好可以保存2个十六进制数据,且完全利用上所有比特位。
十进制(0–9)共计10个数,需要使用4个比特位才能存储下来,但4个比特位其实可以以存储16个数据信息的,只存储了10个数据,则存储空间就浪费了很多,而且检索数据的时候,空的地址符还需要再去检索,也是浪费时间。
同理,八进制(2^3)占用3个比特位,一个字节8个比特位,只能保存2个八进制,且有2个比特位没使用,这样也没有充分利用空间。内存中,一个字节的十六进制数据可以对应二进制是4个字节,所以内存中,存储数据的空间利用率非常高效。
参考文档:
https://jingyan.baidu.com/article/495ba84109665338b30ede98.html
https://www.jianshu.com/p/919a9019e6ac -
二进制与十进制的关系和转化
2012-03-22 12:28:11搞了这么久的程序,还是对进制和转化... 每一位称为一个bit位,有多少个bit位,这个二进制数就有几位。如该数有8个bit位。 2. 数据类型与二进制位数: 1 个字节 有 8 个bit位 即: 1Byte = 8bit 1 个字 有 ... -
为什么会有二进制反码和补码以及关系
2020-01-14 12:47:49二进制补码和反码和源码的关系 一:为什么会有二进制原码反码补码 我们知道,一个数在计算机中使用二进制来表示的。以下都用一个字节来表示二进制的存储。例如:+1表示成二进制为00000001,-1表示成二进制为... -
java中的字节进制计算和(&)位运算符
2020-04-26 17:20:422、字节和二进制有什么关系? 1个字节就是1bit,1bit就是8位,那么二进制就是8位,类似于(0000 0000),在计算机里只认0和1 类型 字节 double 8 byte 1 short 2 int 4 long 8 float ... -
8. 位和字节的关系?
2020-03-28 15:59:00一位(bit)就是二进制中的0或者1,这是最小的数据单位 一个字节(Byte)存储空间的最小单位 一个字节能放8个位,就这关系。 9. b、B、KB、MB、GB 的关系? 1 GB = 1024 MB 1 MB = 1024 KB 1 KB = 1024 B 1 B = 8 ... -
字和字节和位的关系
2019-07-07 17:27:40一个二进制位只可以表示0和1两种状态(21);两个二进制位可以表示00、01、10、11四种(22)状态;三位二进制数可表示八种状态(23)……。 2、字节(byte) 字节来自英文Byte,音译为“拜特”,习惯上用大写的“B... -
二进制,十六进制
2018-07-18 11:24:24bit(位)和byte(字节)的关系 数据存储是以“字节”(Byte)为单位,数据传输大多是以“位”(bit)为单位,一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是最小一... -
困扰的Byte、bit 、和16进制之间的关系
2020-04-29 14:32:16bit(比特) byte(字节) 一、bit(比特) 计算机内存储和处理信息的最小单位是位(bit,或比特),一个比特值可以是0或1,不能再分割 1bit = 一个二进制位 01011110 = 表示一个8位的字(比特...通常8个二进制位为... -
位,字和字节的关系电脑知识
2015-10-25 15:22:43一个二进制位只可以表示0和1两种状态(21);两个二进制位可以表示00、01、10、11四种(22)状态;三位二进制数可表示八种状态(23)……。 2、字节(byte) 字节来自英文Byte,音译为“拜特”,习惯上用... -
第二章 数据是用二进制表示的
2019-09-28 07:09:50看完第二章后,我知道了计算机是以二进制来存储数据的(其实标题已经告诉我们了)。...还有字节(Byte)与位(bit)两者的关系,字节是计算机处理信息的基本单位,而位是最小单位(1字节=8位)。还有就是... -
位 、字节、字符、位与字节的关系?
2019-12-13 10:31:18字节: 字节是计算机存储容量的一种计量单位, 也就是我们平时所说的byte. 字符: 字符是计算机中使用的文字和符号, 例如: 0,1 a,...位与字节的关系? 位: 数据存储的最小单位。每个二进制数字0或者1就是1个位; ... -
字节和位和k的关系
2016-08-07 00:18:24位:bit(bit 音译为比特 ,二进制位,计算机的最小信息单位)说白点是计算机只能处理 0 和 1 这个就是位啦,二进制位,一个0或者是1就是1位 字节: = 1byte(1个字节,微机存储器的最小计算单位) 8bit 就是 -
字、字节和位的关系
2019-07-08 21:08:52一个二进制位只可以表示0和1两种状态;两个二进制位可以表示00、01、10、11四种状态;三位二进制数可表示八种状态。 2.字节(byte) 字节来自英文Byte,音译为“拜特”,习惯上用大写的“B”表示。字节是计算机中... -
字节 和 位 的关系
2020-10-10 11:43:38现代计算机用二进制(位) 作为信息的基础单位, 1个字节等于8位, 例如“big”字符串是由3个字节组成, 但实际在计算机存储时将其用二进制表示, “big”分别对应的ASCII码分别是98、 105、 103, 对应的二进制分别... -
字、字节和位之间的关系
2020-04-13 13:33:36一个二进制位只可以表示0和1两种状态(21) ;两个二进制位可以表示00、01、10、11四种(22)状态;三位二进制数可表示八种状态(23) … 2、字节(byte) 字节来自英文Byte,音译为“拜特”,习惯上用大写的“B”表示。字节是... -
字节、位、比特的概念和关系
2020-04-23 19:11:13一个二进制位只可以表示0和1两种状态。 2、字节(byte) 字节来自英文Byte,音译为“拜特”。 字节是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息, 规定一个字节由八个二进制位构成,1Byte=8... -
【JavaSE笔记】第二章 进制数据类型和运算符
2019-05-22 10:38:27文章目录第二章 进制数据类型和运算符第一节 进制及其转换1.1 进制类型1.2 计算机为什么使用二进制而不使用十进制1.3 二进制和十进制相互转换1.4 各进制数之间的关系第二节 常见存储单位2.1 存储单位介绍位 bit字节 ... -
字节和位的关系
2017-10-10 10:47:00Bit意为“位”或“比特”,是计算机运算的基础,属于二进制的范畴; Byte意为“字节”,是计算机文件大小的基本计算单位; 这两者应用的场合不同。通常用bit来作数据传输的单位,因为物理层,数据链路层的传输... -
字节、字、位、比特的概念和关系
2018-11-28 09:45:20一个二进制位只可以表示0和1两种状态(21);两个二进制位可以表示00、01、10、11四种(22)状态;三位二进制数可表示八种状态(23)……。 2、字节(byte) 字节来自英文Byte,音译为“拜特”,习惯上用大写的“B”... -
PyVM:根据《英特尔软件开发人员手册》以Python编写的,执行x86二进制文件的虚拟机-源码
2021-02-05 04:57:59平面二进制文件(例如,NASM默认生成的二进制文件;将文件的内容解释为字节码) ELF二进制文件(任何静态链接的ELF二进制文件) 特征: x86 CPU(文件: VM/Registers.py , VM/CPU.py , VM/fetchLoop.py , VM... -
字节和比特和位的换算关系
2019-03-26 16:55:31字节的换算: 1 B/byte(字节) = 8 bit(比特)(位) 。 1 KB(千字节) = 1024 B/byte(字节) 。...比特和位实际上是同一个东西,计算机只能处理二进制数据流,二进制的0或1就代表一个位。 计算... -
《Java编程逻辑》第2章 理解数据背后的二进制
2020-11-22 01:11:352.1 二进制整数的表示与位运算 2.2 小数的二进制表示 2.3 字符编码与乱码 字符的编码方式有两种,Unicode编码和非Unicode编码。 非Unicode编码 非Unicode编码按时间先后顺序如下。 ASCII码是基础,使用一个字节表示...