二进制编码

Protobuf 学习手册——编码篇

冷暖自知 提交于 2020-01-25 09:02:31
一、编码规范 Google 官方提供了 Protobuf 的编码规范,通过遵循这些规范,可以使 Protobuf 消息定义及其相应的类保持一致并易于阅读。 Protobuf 编码规范可能随着时间推移而发生变化,对于既有项目,应当保持编码规范的一致性,而不需盲目保持最新的编码规范。但是对于全新项目,应当遵循官方的编码规范,可以 点击这里 查阅官方最新的编码规范。 1.1 Override 一行不超过 80 个字符 两个空格缩进 1.2 文件结构 文件名采用下划线分割命名,形如: lower_snake_case.proto 。所有 .proto 文件应当遵循以下规范: License 头(如果需要的话) 文件综述 Syntax Package Imports (排好序的) File options 一切其他的东西 1.3 Package 包名应当小写,且应当对应于目录结构。例如文件位于 my/package/ 目录, 那么 package 应该是 my.package 。 对于 Java 应用,我们更习惯于使用 option java_package ,很少使用 package。 1.4 Message and field names 对于 messages,使用首字母大写的驼峰命名,例如 SongServerRequest 对于参数名,使用下划线分割命名,例如 song_name

C语言文件操作解析

爷,独闯天下 提交于 2020-01-24 04:12:42
转自:http://www.cnblogs.com/dolphin0520/archive/2011/10/05/2199396.html C语言文件操作解析(一) 在讨论C语言文件操作之前,先了解一下与文件相关的东西。 一.文本文件和二进制文件 文本文件的定义:由若干行字符构成的计算机文件,存在于计算机系统中。文本文件只能存储文件中的有效字符信息,不能存储图像、声音等信息。狭义上的二进制文件则指除开文本文件之外的文件,如图片、DOC文档。 事实上,无论是上面所定义的文本文件还是二进制文件,在计算机中存储都是以二进制的形式存储的,因此其本质并没有区别。所以广义上的二进制文件便指所有的文件。 通常意义下,我们所说的文本文件指只包含了纯文本信息的文件(通过手动编辑完成,包含的都是可显字符),二进制文件特指文件里面存储的是二进制代码的文件。至于为什么在计算机内存储的都是二进制数据,而给我们所呈现的确是文字、图像等信息,这跟计算机硬件组成有关系,因为计算机里面的元件是晶体管,其只有两种稳定的状态,因此二进制的0和1能表示其状态。很多个晶体管的不同状态的组合便呈现给我们不同的信息了。下面以汉字在计算机中的表示为例。 二.汉字在计算机中的表示 用计算机去处理汉字信息,必须对汉字进行编码,变成能被计算机识别的二进制。汉字编码主要有输入码、机内码、字形码三种。分别有不同的作用。 输入码

二进制,十进制,位移运算符

半腔热情 提交于 2020-01-20 01:01:40
比如 11>>2和-7 >> 2结果分别是多少,今天我根据自己理解讲一下 在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,编译器未做任何优化的情况下,规定实际移动 的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相同。移动long型的数值时,规定实际移动的次数是移动次数和64的余数,也就是 移动66次和移动2次得到的结果相同 按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。 11是正整数计算除二取余,然后倒序排列,高位补零 短除法得出1011 -7是负整数先是将对应的正整数转换成二进制后,对二进制取反,然后对结果再加一 7转成二进制 00000111 取反 -7转二进制 11111000 加1 11111001 然而整数型有4个字节长度而一个字节长度是8位,故32位补全 正整数高位补0,负整数补1 如下结果转换用相加法 11(0000 0000 0000 0000 0000 0000 00001011) 把低位的最后两个数字移出0000 0000 0000 0000 0000 0000 0000 0010 结果为十进制2. -7(1111 1111 1111 1111 1111 1111 11111001

python编程之sklearn.preprocessing.LabelBinarizer()的用法解析

删除回忆录丶 提交于 2020-01-17 13:28:32
疑惑 sklearn.preprocessing.LabelBinarizer()是干嘛用的? 解惑 one-hot编码转换的一个方法 什么是one-hot? 举个例子,你就知道了: 二进制表示法,不同的是在二进制中1代表0 0 0 1,但是在这里是1 0 0 0 整数1表示在索引对应的位置; 疑问:日本写在第二,应该是0 1 0 0怎么是 0 0 1 0呢? 解惑:这个里面牵扯到决策树;根据这个决策树来排序好,再分配1的位置,其他地方填充0 来源: CSDN 作者: 我相信慢思考的力量 链接: https://blog.csdn.net/qq_37591637/article/details/103992629

chpater 3-顺序结构的程序设计

陌路散爱 提交于 2020-01-14 07:54:11
文章目录 3.1进制与ASCALL码 3.1.1 二进制 八进制 十进制 十六进制 3.1.2 进制之间转化(手动计算) 3.1.3 ASCALL 码 3.2 常量与变量 3.2.1 常量 3.2.2 变量 3.2.3 常变量 3.2.4 标识符 3.3 数据类型 3.3.1 整数型 3.3.2字符型 3.3.3浮点型 3.4 数据类型的转换 3.5 运算符 3.6 c语言表达式处理的过程 3.7语句 3.7.1 赋值语句 3.7.2 printf输出函数 3.7.3 scanf输入函数 3.7.4 putchar 与getchar 函数 3.8例题 3.1进制与ASCALL码 3.1.1 二进制 八进制 十进制 十六进制 二进制 :逢二近一;只有01 两个基数 八进制 :逢八进一 ;只有01234567 八个基数 十进制 :逢十进一;0123456789 是个基数 十六进制 :逢十六进一;0123456789ABCDEF十五个基数 ; 咱们生活里面用到的就是数值比如:68 ,4490, 324 都是十进制;只是我们没注意罢了; 在代码的世界里面,不能说 010 ,要说(多少)进制 010. 因为 010 ,可以是二进制,八进制,十进制,也可以使十六进制。 for example : 二进制 010 , 二进制 110 八进制 767 十进制 99 十六进制AB2 3.1.2

Delphi 文件类型

夙愿已清 提交于 2020-01-13 15:02:35
该内容整理自以下链接 http://www.cnblogs.com/chenyunpeng/archive/2012/08/02/2620513.html 1.DPR: Delphi Project文件,系统的工程文件。文本格式,需要进源代码库。 2.PAS: Pascal文件,Pascal单元的源代码,可以是与窗体有关的单元或是独立的单元。 3.DFM: Delphi Form File,描述窗体或数据模块及其组件属性的二进制文件。窗体界面文件, 同PAS文件同名,而且一一对应, 定义了窗体属性和构件的属性。 4.BPG: Borland Project Group, 工程项目包, 多个工程文件(DPR)的集合。文本格式,需要进源代码库;bpg文件其实是makefile格式,要编译bpg文件可以使用make工具,语法如下:make -f %FileName% 5.DOF: Delphi Option File, 选项文件, 包括编译信息等。 6.CFG: Project Configuration File, 编译器可读的配置文件。 7.DSK: Desktop Setting File, 保存工程文件的桌面摆布情况, 下次打开时可以恢复上次保存的桌面状态。文本格式,此文件不应进源代码库。 8.DSM:集成开发环境IDE的临时保存文件, 有时IDE总出错, 可以将这个文件删掉,

ASCII,Unicode,UTF-8 和 GBK

烂漫一生 提交于 2020-01-13 05:00:12
转自 http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html 。 如果我也有想阮一峰一样的探究总结能力,一定会变得越来越好。 简单来说, Unicode 是最全的编码方式,囊括世界上所有的符号。 UTF-8 是 Unicode 的实现方式之一,它主要采用了变长存储的方式解决了Unicode 存储空间过大问题。 ASCII 码一共规定了128个字符,对于英文表示是完全足够了。UTF-8表示单字符时和ASCII码是一致的,也就是说,对于128个ASCII码对应的字符,其使用UTF-8编码方式和ASCII码完全一致。 GBK 是汉字编码的一种方式,与Unicode 和 UTF-8 是毫无关系的,但都是一种对字符的编码方式。 正文: 一、 ASCII 码 我们知道,计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有 0 和 1 两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从 00000000 到 11111111 。 上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为 ASCII 码,一直沿用至今。 ASCII

c#字符串编码问题

折月煮酒 提交于 2020-01-12 10:24:34
来自森大科技官方博客 http://www.cnsendblog.com/index.php/?p=272 GPS平台、网站建设、软件开发、系统运维,找森大网络科技! http://cnsendnet.taobao.com c#字符串编码问题 一、 ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111。 上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。 在C#中如果你想看看某个字母的ASCII码是多少,可以使用表示字符编码的类Encoding ,代码如下: string s = "a"; byte[] ascii = Encoding.ASCII.GetBytes(s);

c#字符串编码问题

↘锁芯ラ 提交于 2020-01-12 10:20:14
来自森大科技官方博客 http://www.cnsendblog.com/index.php/?p=272 GPS平台、网站建设、软件开发、系统运维,找森大网络科技! http://cnsendnet.taobao.com c#字符串编码问题 一、 ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111。 上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。 在C#中如果你想看看某个字母的ASCII码是多少,可以使用表示字符编码的类Encoding ,代码如下: string s = "a"; byte[] ascii = Encoding.ASCII.GetBytes(s);

Qt开发中文显示乱码

折月煮酒 提交于 2020-01-07 16:04:39
Qt开发中文显示乱码 来源 https://www.jianshu.com/p/ed269df8104d 参考 https://blog.csdn.net/J_H_C/article/details/93882284 为什么会出现乱码 首先,我们需要有的概念是 乱码的问题是由编码和解码方式引起的 。涉及到编码方式的地方有3个: 源码字符集 执行字符集 运行环境字符集 源码字符集(the source character set):源码文件时使用何种编码格式保存的。 执行字符集(the execution character):可执行程序内保存的是何种编码(程序执行时内存中字符串编码) gcc 运行字符集设置参数 -finput-charset=charset //设置源码字符集为charset -fexec-charset=charset //设置执行字符集为charset -fwide-exec-charset=charset //设置宽字符串的执行字符集为charset msvc 运行字符集设置参数 -execution-charset:utf-8 // 指明程序执行时使用UTF-8字符集 -source-charset:utf-8 // 指明源码文件的编码为UTF-8字符集 源码字符集确切的说是编译器认为源码文件的编码方式,执行字符集是可执行程序采用的编码方式