二进制编码

HTTP/2 新特性总结

淺唱寂寞╮ 提交于 2019-12-05 15:57:04
我在想了解HTTP/2的时候,查阅了很多资料,发现这篇很好,是外国的文章.我翻译过来,加入自己的一点理解. HTTP/2 更简单,高效,强大.它在传输层解决了以前我们HTTP1.x中一直存在的问题.使用它可以优化我们的应用.HTTP/2 的首要目标是通过完全的请求,响应多路复用,头部的压缩头部域来减小头部的体积,添加了请求优先级,服务端推送.为了支持这些特性,他需要大量的协议增加头部字段来支持,例如新的流量控制,差错处理,升级机制.而这些是每个web开发者都应该在他们的应用中用到的. HTTP/2并没有在应用中改变HTTP的语义,而是通过在客户端和服务端传输的数据格式(frame)和传输.它通过在新的二进制帧层控制整个过程以及隐藏复杂性,而这不需要改变原来有的东西就可以实现. 1. 设计和技术目标 HTTP是因特网广泛普及和采纳的应用层协议.它的易于实现性同样有了对应用性能方面的影响.HTTP/1.x 需要开启多个连接来实现并发和减少潜在影响.HTTP/1.x 的头部没有压缩,造成不必要的网络拥塞.HTTP/1.x没有应用资源优先级,导致重要Tcp连接的糟糕使用. 它的好处如下; HTTP/2 enables a more efficient use of network resources and a reduced perception of latency by

论文阅读:Learning Compact Binary Descriptors with Unsupervised Deep Neural Networks

坚强是说给别人听的谎言 提交于 2019-12-05 13:40:42
参考文献:Lin K, Lu J, Chen C S, et al. Learning compact binary descriptors with unsupervised deep neural networks[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 1183-1192. 参考博客: https://blog.csdn.net/qq_32417287/article/details/80216891    这篇文章主要提出了一种新的损失函数,用无监督的方法学习网络权重,最终得到每幅图像的二进制描述子。 这种方法不仅仅是在图像检索上,在其他任务,例如图像匹配、图像分类上也同样有效。损失函数包括三个约束: 二进制描述符应该与最后一个激活层的输出尽可能近,Quantization Loss Minimization 二进制描述符应均匀分布,Evenly Distribution 对旋转和噪声具有鲁棒性,Rotation Invariant 1、Introduction   一个好的特征描述子应该具备的特性:高质量特征表示、低计算开销,要能够找到图像中的可以用于区分的信息,并且对于图像的旋转变换要有鲁棒性。如果用于移动设备,还需要考虑计算的实时性

和证书相关的文件格式: Pem, Pfx, Der

百般思念 提交于 2019-12-05 12:08:16
Pem Pem是最常见的证书文件格式。常见文件扩展名为.cer, .crt, .epm. 其文件内容采用如下格式: -----BEGIN CERTIFICATE----- Base64编码的证书内容-----END CERTIFICATE----- Der Der是一种二进制格式的证书。由于是二进制格式的,因此也就不包含----BEGIN CERTIFICATE-----这种文件头。 PKCS#12 or PFX 这也是一种二进制格式的加密文件。它不仅包含证书信息,还包含中间证书,私钥。常见文件扩展名为.pfx, .p12. 我们如果需要把私钥和证书一起转移时可以生成这种文件,可以为其设定密码来保护私钥。 来源: https://www.cnblogs.com/Code-life/p/11923997.html

python基础之九:文件操作

拟墨画扇 提交于 2019-12-05 07:43:12
1、绝对路径与相对路径 path1 = "D:\orders.txt" # 绝对路径:包含根地址的路径 path2 = "homework.py" # 相对路径:相对当前文件所在目录的地址 2、文件读取 1 bj = open(path1, 'r', 1, 'utf-8') # 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式. 2 # ---> 如果文件不是utf-8编码,有中文的情况下会报错。如用gb2132写入中文,用utf-8打开就会报错,但是一个字节可以表示的字符,不报错! 3 print(obj.read()) 4 obj.close() # 完成后要关闭对象 5 6 # 对应的二进制模式 7 obj_b = open(path1, 'rb', 1) # 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 8 print(obj_b.read().decode()) # 一开始用的字符串的encode方法,还要将bytes转为字符串,然后再encode,结果还是字节码,应该是文件对象解码才对! 9 obj_b.close() 10 11 # 升级版读取"+":可以读写 12 obj_plus = open(path1, 'r+', 1, 'utf-8') # 打开一个文件用于读写

二进制补码(负数编码)、反码、原码

寵の児 提交于 2019-12-05 02:55:12
一、补码 补码是对负整数在计算机中存储的一种形式; 第二种形式的负数在计算机中可以使用 (负号加数字)的形式表示一个负数;例如(-3 以1000 0011 存储)但是使用这种方法表示的只有(+0,-0),而且不可以做算术运算。 二、计算机数和真值 讨论二进制编码之前,首先来了解一下什么是计算机数和真值 (一)计算机数 一个数在计算机中的二进制表示形式,叫做这个数的机器数 。 机器数数带符号的,由于计算机内部的硬件只能表示两种物理状态,在 计算机使用一个数的最高位存放符号,正数为 0,负数为 1。 例如: 十进制中的 +5 和 -5,计算机字长为8位,分别转换为 00000101 和 10000101;这里面的 00000101 和 10000101 就是机器数 机器数的特点: 一个数值的二进制表现形式,就叫做这个数的机器数。二进制的位数是受机器设备的限制的。机器内部设备一次能表示的二进制位数叫做机器的字长,一台机器的字长数固定的。 字长8位的叫做一个字节(Byte),机器字长一般都是字节的整数倍,如字长 8位、16位、32位、64位。 机器数的分类: 根据小数点位置固定与否,机器数又可以分为定点数和浮点数。通常使用 定点数表示 整数,使用 浮点数表示 实数: 1、整数 :整数没有小数部分,小数点固定在数的最右边。整数可以分为(1) 无符号整数 和 (2) 有符号整数 两类。

字符集编码详解(学习,看一篇就够了)

我的未来我决定 提交于 2019-12-04 21:14:54
置顶 2018-11-11 17:25:14 笑我归无处 阅读数 6456 更多 分类专栏: 基础 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/qq_42068856/article/details/83792174 最近学习字符集编码,发现很多博文的讲解对初学者很不友善,许多文章繁杂且不易懂,需要阅读了大量文章和查询资料后,才能明白字符集及相关概念,本文致力于一篇文章就可以让初学者对字符集有一个很好的认识,为将来开发项目充实其理论基础,为解决BUG提供思路。 什么是字符集 一、疑惑 相信很多对字符集编码不够了解的程序员经常会出现很多乱码问题,抱有很多疑惑。 比如,为什么会出现乱码? 这里用的是什么字符编码? 创建一个文本它是GBK编码还是UTF-8编码? (创建文本文件默认使用ANSI,就是系统默认编码方式,中文windows系统默认使用GBK编码方式) 我应该使用GBK编码还是UTF-8编码? Unicode和UTF-8的区别是什么? 那么看完这篇文章,相信这些问题都可以迎刃而解。 二、基础概念 字节 这个是最基本的概念了, 字节 是计算存储容量的一种计量单位。我们知道计算机只能识别1和0组成的二进制位。一个数就是1位(bit),为了方便计算

Mysql日志管理

孤街浪徒 提交于 2019-12-04 21:03:43
错误日志 查询日志 慢查询日志 二进制日志 toc error log 错误日志 记录mysql启停错误信息用于排错 general log 普通日志 记录客户端查询日志用于开发 bin log 二进制日志 增量备份 DDL DML DCL 用于备份 relay log 中继日志 接收 replication master 常用于主从复制 slow log 慢查询日志 查询时间超过指定值用于调优 错误日志 Mysql 的错误日志 error log 记录 mysqld 服务进程启动/关闭或运行过遇到的错误日志。 错误日志默认开启(没有开启按照如下方式开启) ## 在配置文件 [mysqld] 标签内增加 log-error=/log/mysql/err.log [root@Mysql ~]# vim /etc/my.cnf [mysqld] ...... log-error=/log/mysql/err.log ## 创建对应目录与日志文件 [root@Mysql ~]# mkdir -p /log/mysql/ [root@Mysql ~]# touch /log/mysql/err.log ## 更改日志文件属主和属组为 mysql [root@Mysql ~]# chown -R mysql.mysql /log/mysql/err.log ## 重启数据库生效 [root

字库、编码字符集、字符编码的学习

我的未来我决定 提交于 2019-12-04 17:55:16
1.编码字符集:编码字符集是对字符个体描述的集合。因为计算机只能处理二进制信息,所以我们需要制定一种规则:把现实世界的字符集合一 一映射为二进制数集,即为编码字符集(你可以理解为计算机眼中的字符形式)。 而字符集合的大小、一 一映射的方式的不同,将产生各种各样的编码字符集,例如: ASCII, Unicode, GBK 2.字符编码: 虽然我们已经为字符对应了一个二进制数,但是为了更好的计算机中存储、传输,我们需要再对编码字符集的二进制数进行编码。例如Unicode编码下有多种编码方式:UTF-8, UTF-16, UTF-32 从这里我们可以看到,Unicode中每个二进制数占4个字节,如果0000000000 - 0000007F(H)范围的二进制数都用原本的方式存储,就会极大浪费空间(原本xx(H)就足够表示了,所以需要进一步编码来减小空间。 3.字库集:字库是对字符视觉形态描述的集合。(编码字符集中的二进制数就是对应字体在字库的中地址) 4.三者的关系: 如果我想显示计算机中‘a'这个字符,我需要先把在计算机中存储的二进制数用正确的方式解码为编码字符集中的的二进制数,在根据该二进制数找到字库中对应的字体显示出来。 来源: https://www.cnblogs.com/Serenaxy/p/11876253.html

带你走进字符编码的世界

萝らか妹 提交于 2019-12-04 04:50:39
思考一下,为什么有字符编码这种东西? 当然是为了让计算机“听话”呗。我们知道,计算机的世界只有01这两个字符,而我们现实世界有成千上万的字符。如何用01的组合去和现实中的字符一一对应呢?这就是需要制定相应的编码规则来实现了。明白了这点,我们正式开始编码的讲解。 ASCII码 我们知道, 在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态 ,因此八个二进制位就可以组合出256种状态(-128~127),这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。 上个世纪60年代, 美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定 。这被称为ASCII码,一直沿用至今。 ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。 ASCII码用了1个字节,1个字节可以表示256种状态,但ASCII码只用了128种,也就是一个字节的后七位,最前面的1位都是0。 非ASCII编码 英语用128个符号编码就够了,但是用来表示其他语言

进制转换

喜你入骨 提交于 2019-12-04 04:36:34
一、进制   进制就是进位计数制,是人为定义的带进位的计数方法。   对于任何一种进制—— X进制,就表示每一位置上的数运算时都是 逢 X 进一位 。   十进制就是逢十进一,二进制就是逢二进一,十六进制就是逢十六进一,以此类推。 二、进制转换   进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“ 基数 ”和“ 位权 ”构成。    基数 :进制计数制中所采用的数码(数制中用来表示“量”的符号)的个数。    位权 :进位制中每一固定对应的单位值。 三、进制转换结构图   最常用的进制转换是二、八、十、十六进制之间的相互转换,下面是各个进制之间关系的结构图。      下面对各个进制的转换进行详解。 四、进制转换算法     在数字后面加上不同的字母来表示不同的进位制。     B(Binary) 表示二进制,O(Octal) 表示八进制,D(Decimal) 或不加表示十进制,H(Hexadecimal) 表示十六进制。     例如:(101011)B = (53)O = (43)D = (2B) H   1、(二、八、十六进制) → (十进制)               (1)二进制 → 十进制       方法: 二进制数从低位到高位(即从右往左)计算,第0位的权值是2的0次方,第1位的权值是2的1次方,第2位的权值是2的2次方,依次递增下去