二进制编码

VC++ 字符串操作学习总结

北慕城南 提交于 2019-11-27 03:01:36
vc++中各种字符串(转载) http://www.cnblogs.com/tomin/archive/2008/12/28/1364097.html CString ,BSTR ,LPCTSTR之间关系和区别 CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常 量的TCHAR指针。 CString 是一个完全独立的类,动态的TCHAR数组,封装了 + 等操作符和字符串操作方法。 typedef OLECHAR FAR* BSTR; typedef const char * LPCTSTR; vc++中各种字符串的表示法 首先char* 是指向ANSI字符数组的指针,其中每个字符占据8位(有效数据是除掉最高位的其他7位),这里保持了与传 统的C,C++的兼容。 LP的含义是长指针(long pointer)。LPSTR是一个指向以‘\0’结尾的ANSI字符数组的指针,与char*可以互换使用,在 win32中较多地使用LPSTR。 而LPCSTR中增加的‘C’的含义是“CONSTANT”(常量),表明这种数据类型的实例不能被使用它的API函数改变, 除此之外,它与LPSTR是等同的。 1.LP表示长指针,在win16下有长指针(LP)和短指针(P)的区别,而在win32下是没有区别的,都是32位

字符编码笔记:ASCII,Unicode和UTF-8 (转)

隐身守侯 提交于 2019-11-27 00:21:06
转自 http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html 今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上 查资料。 结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。 下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使 用计算机,就必须懂得一点字符编码的知识。 1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出 256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从 0000000到11111111。 上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。 ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制 01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位

c 文件操作【转】

[亡魂溺海] 提交于 2019-11-26 18:33:19
原文:http://www.cnblogs.com/duzouzhe/archive/2009/10/24/1589348.html 文件的基本概念   所谓“文件”是指一组相关数据的有序集合。 这个数据集有一个名称,叫做文件名。 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件、目标文件、可执行文件、库文件 (头文件)等。文件通常是驻留在外部介质(如磁盘等)上的, 在使用时才调入内存中来。从不同的角度可对文件作不同的分类。从用户的角度看,文件可分为普通文件和设备文件两种。   普通文件是指驻留在磁盘或其它外部介质上的一个有序数据集,可以是源文件、目标文件、可执行程序; 也可以是一组待输入处理的原始数据,或者是一组输出的结果。对于源文件、目标文件、可执行程序可以称作程序文件,对输入输出数据可称作数据文件。   设备文件是指与主机相联的各种外部设备,如显示器、打印机、键盘等。在操作系统中,把外部设备也看作是一个文件来进行管理,把它们的输入、输出等同于对磁盘文件的读和写。通常把显示器定义为标准输出文件, 一般情况下在屏幕上显示有关信息就是向标准输出文件输出。如前面经常使用的printf,putchar 函数就是这类输出。键盘通常被指定标准的输入文件, 从键盘上输入就意味着从标准输入文件上输入数据。scanf,getchar函数就属于这类输入。   从文件编码的方式来看

Python基本数据结构之二进制

守給你的承諾、 提交于 2019-11-26 14:24:27
二进制---->ASCII :只能存英文和拉丁字符。一个字符占一个字节,8位----->gb2312:只能6700多个中文,1980------->gbk1.0:村落2万多字符,1995--------> gb18030:2000 ,27000中文---------> unicode: utf-32: 一个字符占4个字节 utf-16: 一个字符占2个字节或2个以上 utf-8: 一个英文用ASCII 码来存,一个中文占3个字节 in python2 默认编码是ASCII码 in python3 默认是unicode encode会在编码的同时,会把数据转成byte类型 encode会在解码的同时,会把byte类型转成字符串 b = byte = 字节类型 单独的一个数据类型 = 【0-255】 假如,战国时期两个国家要打仗了,我们垒了城墙,每隔一段就有兵镇守,现在有人来攻打我们了,然后我们是不是得通知其他人有人来打我们来了?怎么通知? 派个人跑着去?等人回来,仗打完了 飞鸽传书?不靠谱,鸽子会被敌人射下来做烧烤 点狼烟信号,可行 好了,现在有5000精兵来打你了,你点了根狼烟搬救兵,从东边来了10个人,西边来了10个人,20个人来了,和你们一起战死了。 这怎么办? 我们不能这么保守了,只要我一点狼烟说有人来打我们了,先来他10000人,结果来了200个敌人,我们呼啦啦来一大堆人

二进制、编码

試著忘記壹切 提交于 2019-11-26 14:23:22
二进制:   n位最大表示数值之和:2**n-1,n位表示数值:2**(n-1) 计算机容量:   二进制1位=1bit   1byte=8bit   1kb=1024byte   1mb=1024kb 编码   编码是信息从一种形式或格式转换为另一种形式的过程,也称为计算机编程语言的代码简称编码。用预先规定的方法将文字、数字或其它对象编成数码,或将信息、数据转换成规定的电脉冲信号。编码在电子计算机、电视、遥控和通讯等方面广泛使用。编码是信息从一种形式或格式转换为另一种形式的过程。解码,是编码的逆过程。 ASCII码:ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符,每个字符由8bit来存储。 来源: https://www.cnblogs.com/zzzhao/p/11323849.html

Python系列(二)python变量赋值与运算符

懵懂的女人 提交于 2019-11-26 14:10:18
本博文阅读目录: 1、什么是变量? 2、命名规则 3、变量赋值在内存中的原理 4、输入与输出[input raw_input,print] 5、常量 6、常用数据类型[整数,浮点数,布尔值,空值] 7、字符串与字符串格式化[%s,%d,%f,%x ] 8、编码 [ASCII,unicode,UTF-8] 9、注释 [#,’’’] 10、python算术运算符 [+,-,*,/,//,%,**] 11、python比较运算符 [==,!=,<>,>,<,>=,<=] 12、python赋值运算符 [=,+=,-+,*=,/=,%=,**=,//=] 13、python位运算符 [&,|,^,>>,<<] 14、python逻辑运算符 [or,and,not] 15、python成员运算符 [in,not in] 16、python身份运算符 [is,is not] 17、python运算符优先级 正文部分 一、变量赋值 1、什么是变量? 变量就是存储了一个值(就是与变量相关联的信息),代表或引用某个值的一个命名。通常使用“变量=值”的方式给变量赋值。学习过程中有不懂的可以加入我们的学习交流秋秋圈784中间758后面214,与你分享Python企业当下人才需求及怎么从零基础学习Python,和学习什么内容。相关学习视频资料、开发工具都有分享 2、命名规则 变量名只能包括字母

计算机组成原理题库(唐朔飞)

醉酒当歌 提交于 2019-11-26 12:27:42
计算机组成原理题库 ~~02|01|1|2|A0400047_010_1|871 ^^通常划分计算机发展时代是以( )为标准的。 A、所用电子器件 B、运算速度 C、计算机结构 D、所用语言 ^^A ~~02|01|1|2|A0400047_010_2|872 ^^能够被计算机硬件直接识别的语言是( )。 A、符号语言 B、机器语言 C、汇编语言 D、机器语言和汇编语言 ^^B ~~02|01|1|2|A0400047_010_3|873 ^^计算机能直接执行的程序是( )。 A、命令文件 B、汇编程序 C、机器语言程序 D、源程序 ^^C ~~02|01|1|2|A0400047_010_4|874 ^^计算机内的信息都是以( )形式表示的。 A、BCD码 B、二进制码 C、字母码 D、符号码 ^^B ~~02|01|1|2|A0400047_010_5|875 ^^至今为止,计算机中的所有信息仍以二进制方式表示,其理由是( )。 A、节省物理器件 B、运算速度快 C、物理器件容易实现 D、信息处理方便 ^^C ~~02|01|1|2|A0400047_010_6|876 ^^电子计算机技术在半个世纪中虽有很大进步,但至今其运行仍遵循着一位科学家提出的基本原理。他就是( )。 A、牛顿 B、爱因斯坦 C、爱迪生 D、冯·诺依曼 ^^D ~~02|01|1|2|A0400047

原来Python还能这样用?加密文件,坚不可破!

谁说胖子不能爱 提交于 2019-11-26 10:25:38
生活中,有时候我们需要对一些重要的文件进行加密**,Python 提供了诸如 hashlib,base64 等便于使用的加密库。** 但对于日常学习而言,我们可以借助异或操作,实现一个简单的文件加密程序,从而强化自身的编程能力。 记得给公众号加个星标,不会错过精彩内容。 基础知识 在 Python 中异或操作符为: ^ ,也可以记作 XOR。按位异或的意思是:相同值异或为 0,不同值异或为 1。具体来讲,有四种可能:0 ^ 0 = 0,0 ^ 1 = 1, 1 ^ 0 = 1, 1 ^ 1 = 0。我们还可总结出规律(A 为 0 或 1):0 和 A 异或为 A本身;1 和 A 异或为 A 反。 让我们想看看一位二进制数满足的性质: 一位二进制数与自身的异或值为 0 b ^ b = 0 异或操作满足交换律 a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c 0 与 a 的异或为 a (a ^ b) ^ b = a ^ (b ^ b) = a ^ 0 = a 易知,对任意长二进制数都满足上述性质。 原理 通过了解异或操作的性质,加密原理就非常清晰了。 加密操作: 首先将文件转换成二进制数,再生成与该二进制数等长的随机密钥,将二进制数与密钥进行异或操作,得到加密后的二进制数。 解密操作: 将加密后的二进制程序与密钥进行异或操作,就得到原二进制数

HTTP/2 新特性总结

拜拜、爱过 提交于 2019-11-26 02:31:45
我在想了解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