二进制编码

文本文件与二进制文件

喜欢而已 提交于 2019-11-30 00:50:57
文本文件与二进制文件 一、文本文件与二进制文件的定义 大家都知道计算机的存储在物理上是二进制的,所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的。这两者只是在编码层次上有差异。 简单来说,文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码)。 从上面可以看出文本文件基本上是定长编码的(也有非定长的编码如UTF-8),基于字符嘛,每个字符在具体编码中是固定的,ASCII码是8个比特的编码,UNICODE一般占16个比特。而二进制文件可看成是变长编码的,因为是值编码嘛,多少个比特代表一个值,完全由你决定。大家可能对BMP文件比较熟悉,就拿它举例子吧,其头部是较为固定长度的文件头信息,前2字节用来记录文件为BMP格式,接下来的8个字节用来记录文件长度,再接下来的4字节用来记录bmp文件头的长度。。。大家可以看出来了吧,其编码是基于值的(不定长的,2、4、8字节长的值都有),所以BMP是二进制文件。 二、文本文件与二进制文件的存取 文本工具打开一个文件的过程是怎样的呢?拿记事本来说,它首先读取文件物理上所对应的二进制比特流(前面已经说了,存储都是二进制的),然后按照你所选择的解码方式来解释这个流,然后将解释结果显示出来。一般来说

把编码二进制数据以及文件转换为文本或者把文本转换为编码二进制数据

你说的曾经没有我的故事 提交于 2019-11-29 23:47:44
Xceed Binary Encoding Library 控件 是一款为Windows软件开发人员准备的,使应用程序可以把编码二进制数据以及文件转换为文本或者把文本转换为编码二进制数据,该产品包含在 Xceed Ultimate Suite 套包中。 具体功能: 兼容RFC-2045, RFC-1741, RFC-2045 支持多种编码解码类型:UUEncode, XXEncode, Base64, Binhex, Quoted-Printable, plain Hexadecimal 完全支持对流数据进行编码和解码 支持对缓存数据,字符串、二进制数据块、流数据、以及单个文件进行编码和解码 支持数据处理从一个缓存到另外一个缓存 支持数据处理从流到流或者流到文件 控件是一款COM对象和ActiveX控件,采用ATL 3.0编写 并不需要额外的DLL、ATL、MFC或者运行时动态库 根据STA和MTA设计 支持多个事例同时运行 支持VB, VC++, Delphi, C++ Builder, VFP, Office, Web 脚本语言, ASP, DCOM对象 控件提供了丰富的帮助文档和多个开发平台下的事例 下载该控件请到龙博方案网 http://www.fanganwang.com/product/5091 来源: oschina 链接: https://my.oschina

Mysql的建表规范与注意事项

这一生的挚爱 提交于 2019-11-29 20:44:41
一、库名、表名、字段名必须使用小写字母,“_”分割;库名、表名、字段名必须不超过12个字符;库名、表名、字段名见名知意,建议使用名词而不是动词。 二、建议使用InnoDB存储引擎。 存储引擎:innoDb支持事物,myisam不支持事物,建议使用innoDb, 5.5以后的默认引擘,支持事务,行级锁,更好的恢复性,高并发下性能更好,对多核,大内存,ssd等硬件支持更好。 (1) MyISAM表是独立于操作系统的,这说明可以轻松地将其从Windows服务器移植到Linux服务器;每当我们建立一个MyISAM引擎的表时,就会在本地磁盘上建立三个文件,文件名就是表明。例如,我建立了一个MyISAM引擎的tb_Demo表,那么就会生成以下三个文件: 1.tb_demo.frm,存储表定义; 2.tb_demo.MYD,存储数据; 3.tb_demo.MYI,存储索引。 MyISAM表无法处理事务,这就意味着有事务处理需求的表,不能使用MyISAM存储引擎。MyISAM存储引擎特别适合在以下几种情况下使用: 1.选择密集型的表。MyISAM存储引擎在筛选大量数据时非常迅速,这是它最突出的优点。 2.插入密集型的表。MyISAM的并发插入特性允许同时选择和插入数据。例如:MyISAM存储引擎很适合管理邮件或Web服务器日志数据。 (2) InnoDB是一个健壮的事务型存储引擎

day2

拜拜、爱过 提交于 2019-11-29 19:18:04
阅读目录 上节拾遗 二进制 字符编码 基本数据类型 回到顶部 上节拾遗 变 量的创建与id 例1:name = 'oldboy' 首先,当我们定义了一个变量name = ‘oldboy’的时候,在内存中其实是做了这样一件事: 程序开辟了一块内存空间,将‘oldboy’存储进去,再让变量名name指向‘oldboy’所在的内存地址。如下图所示: 例 2:两个变量名一个值 提问:当我执行下面这段代码的时候,程序是怎么处理的呢? name1 = 'oldboy' name2 = 'oldboy' 我们猜想会有两种可能: 第一种情况:程序分别在内存中开辟了两块儿空间来存储‘oldboy’这个值,并且让name1和name2指向这两个值。如下左图 第二种情况:由于两个值内容一致,所以程序只开辟一块儿空间存储‘oldboy’,并让name1和name2只想着个值。如下右图 提问:大家来猜测一下会是哪种情况? 其实上面的两种猜想都是对的。正常情况下字符串在内存里就是如我们猜想的第一种情况一样,每一次创建一个变量都会在内存中申请一块儿空间。 但是,python认为一些“看起来像python标识符的字符”和小整数字在开发中是常用的,因此出于节省内存的角度思考,对于这部分字符串和数字做出了优化[-5,257)

基础项目(4)二级制转换BCD

我只是一个虾纸丫 提交于 2019-11-29 13:17:48
写在 前面的 话 我们的数据在运算或者存储的时候,一般都是以二进制的格式存在的。但是在很多情况下,我们需要将运算结果显示到某种显示设备上,如果直接以二进制的形式来显示的话,会非常不便于我们查看。因此,我们需要首先将二进制数转换为十进制数再进行显示。二进制到十进制的转换有很多种方法。本节,梦翼师兄和大家一起学习一种国外目前最为流行的转换方法 -逐步移位法。通过这种方式,我们不但可以在没有周期差的情况下实现数据格式的转换,同时我们的资源占用量也是相当小的。 基本 概念 BCD码(Binary-Coded Decimal‎)也 称二进码十进数或二 - 十进制 代码。用 4位二进制数来表示1位 十进制数 中的 0~9这10个数码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧 在 FPGA中经常用到,如矩阵键盘输入的数据需要在数码管上显示的时候,矩阵键盘输入的数字是二进制数,而数码管上需要显示的是十进制数,所以需要将二进制数转换成BCD码,这在我们以后的设计中会经常遇到。 7.3 .3逐步移位法原理 在本设计中,我们使用逐步移位法来实现二进制数向BCD码的转换,在设计之前,我们先来了解一下二进制数向BCD码转换的原理-逐步移位法: 变量定义: B:需要转换的二进制数位宽 D:转换后的BCD码位宽 (其中

十六章、国际化

穿精又带淫゛_ 提交于 2019-11-29 12:33:01
HTTP报文可以承载任何语言表示的内容的。因为对HTTP来说, 实体主体只是二进制信息的容器而已 。 在HTTP中为了支持国际性,服务器返回内容的同时需要告知客户端文档是用的什么字母表和语言等信息,这样客户端才能正确的解析出信息并显示字符。服务器可以通过 Content-Type 中的 charset参数 和 Content-Language 首部告知客户端字母表和语言信息。 同时,客户端并不是所有的字母表和语言都能进行处理,所以客户端在发起请求的时候,也可以通过发送 Accept-Charset 和 Accept-Languag e 首部, 告知服务端自己所能处理的编码类型和语言 。这两个首部也支持优先级,可以通过 q参数 设置优先级。 所以,HTTP中的国际化,也就是本篇要介绍的内容主要涉及到字符集编码(character set encoding)和语言标记(language tag) 1 字符集和HTTP 1.1 字符集的概念 所谓字符集起始就是把字符转为二进制码的编码。 HTTP 字符集的值说明如何把实体内容的二进制码转换为特定字母表中的字符 。每个字符集标记都命名了一种把二进制码转换为字符的算法(反之亦然)。字符集标记在由 IANA 维护MIME字符集注册机构进行了标准化。一般通过Content-Type中的charset参数进行指定。如下: Content-Type:

Python编程笔记二进制、字符编码、数据类型

百般思念 提交于 2019-11-29 10:19:47
一、二进制 bin() 在python中可以用bin()内置函数获取一个十进制的数的二进制 计算机容量单位 8bit = 1 bytes 字节,最小的存储单位,1bytes缩写为1B 1KB = 1024B 1MB = 1024KB 1GB = 1024MB 1TB = 1024 GB 1PB = 1024 TB 1EB = 1024 PB 1ZB = 1024 EB 1YB = 1024 ZB 1BB = 1024 YB 二、字符编码 Unicode编码:国际标准字符集,它将世界的各种语言的每个字符定义个唯一的编码,以满足跨平台、跨语言的文本信息转换。Unicode(统一码、万国码)规定所有的字符和符号最少由16位来表示(2个字节),即2**16 = 65536. UTF-8 ,是对Unicode编码的压缩优化,它不在使用最少2个字节,而是将所有的字符和符号分类,ascii码中的内容用1个字节来保存,欧洲的字符用2个字节来保存,东亚的字符用3个字节保存。 windows 系统中文版默认编码是GBK MAC \Linux 系统默认编码是UTF-8 三、浮点数 浮点数 是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。包括整数和分数,包含有限小数和无线循环小数。 无限不循环的小数不是浮点数 整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的

二进制整数及其表达方式

断了今生、忘了曾经 提交于 2019-11-29 10:12:50
回去又复习了一遍计算机里面二进制整数的表示方式,主要分为3类:原码、反码和补码。 当然,我还是要在开头说明一下,计算机里都是以 补码 的形式储存数据。 原码 这种方式最好理解,将我十进制的“逢十进一”换成二进制的“逢二进一”就行了。 具体如何做呢?还是介绍一下十进制和二进制的转换方式吧。 二进制转换十进制 话不多说,直接写公式,“按权展开求和”: 十进制转二进制 按照套路来,用"除2取余,逆序排列"的方法。 举个栗子:789转换成二进制 1.除二取余 计算 余数 位数 789/2=394 余1 第10位 394/2=197 余0 第9位 197/2=98 余1 第8位 98/2=49 余0 第7位 49/2=24 余1 第6位 24/2=12 余0 第5位 12/2=6 余0 第4位 6/2=3 余0 第3位 3/2=1 余1 第2位 1/2得0 余1 第1位 2.逆序排列余数得到结果 789=1100010101(B) 后面括号里的B代表该数为二进制 计算机里为什么要用二进制码来表示数据 1、技术实现简单。计算机是由逻辑电路组成,逻辑电路通常只有两种状态,开关的接通和断开,正好用“0”“1”表示。 2、运算规则简单,两个二进制数的和、积运算组合简单。 3、适合逻辑运算,二进制只有两个数码,和逻辑代数中的“真”“假”相吻合。 4、易于进行转换,二进制和十进制数转换简单。 -----

二进制的编码

一笑奈何 提交于 2019-11-29 04:18:09
假设有一个只有4位的二进制:0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,1111,共16个数,来表示-8到7共16个数。 很自然的我们想到用0000-0111来表示0-7. -8到-1该用谁来表示呢,有个原码是用的1000表示-1,1001表-2,等等以此类推,还说是自然顺序。 我觉得一点也不自然。 因为前面,从0000到0111来表示-到7,是从小到大依次一一对应。而如果用1000到1111来表示-1到-8,岂不是变成从二进制从小到大,十进制从大到小的对应了? 所以,所谓的补码才是自然的,1000到1111中谁最大,当然是1111,而-1到-8谁最大,当然是-1,所以1111和-1对应,才是 自然美 。 来源: https://www.cnblogs.com/litifeng/p/11452181.html

python3 文件操作

若如初见. 提交于 2019-11-29 00:37:53
def open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True): # known special case of open """ Open file and return a stream. Raise IOError upon failure. file is either a text or byte string giving the name (and the path if the file isn't in the current working directory) of the file to be opened or an integer file descriptor of the file to be wrapped. (If a file descriptor is given, it is closed when the returned I/O object is closed, unless closefd is set to False.) mode is an optional string that specifies the mode in which the file is opened. It defaults