二进制

2.1 进制转换

旧时模样 提交于 2020-04-04 19:56:23
这里主要介绍二进制、十进制、十六进制的转换 一.基本概念: ①数码:用来表示进制数的元素 binary二进制数码:0,1 decimal十进制数码:0,1,2,3,4,5,6,7,8,9 hexadecimal十六进制数码:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F ②基数:数码的个数,三种进制分别为2,10,16 ③位权:数制中每一个固定位置对应的单位值为位权;每个数码表示的数值=该数码值*所处位置的位权,例十位,个位,百位等 总结: (N) R =a n-1 R n-1 +a n-2 R n-2 +……+a -m R -m ,其中R位基数,R n 为位权。 二.进制转换 ①二进制转换成十进制Binary——>decimal 按权相加法:小数点前的部分,整数从最后一位从右向左开始,从0开始依次为第n位,依次乘以2的n次方相加;小数部分从左往右算,依次算为第1,2,3……n位,将第n位的数乘以2的-n次方,相加即可得到小数位的十进制数。 ②二进制转换成十六进制 每四位二进制数对应一个十六进制数位,以小数点为界,整数部分从右向左每4位隔开,不足4位左边补0即可;小数部分将二进制数从左往右每4位隔开,不足4位的右边补0,即可得到16进制数 ③十进制转换成二进制 以小数点为界限,整数部分用除2取余发,小数部分用乘2取整法:先乘2,将获得于运算结果的整数部分

Codeforces Round #631 (Div. 2) Dreamoon Likes Sequences

守給你的承諾、 提交于 2020-04-04 14:36:30
题面很短,别的博客也讲了就不说题意了。 做法: 异或是没有进位的加法,所以ai + 1的二进制最高位要大于ai的二进制最高位,才能满足ai递增,bi也递增的条件。呐这样的话,选了4,(5,6,7)就都不能选了,只能选比7大的数。 这样分析下来a数组最长也只有30,(2^30>1e9) 直接按照数字大小dp会TLE 思路角度1:换一个角度,我们把二进制最高位相同的看作一组,因为这一组内只能选一个数。 有点像分组背包。但是我们现在只看分组背包的方案数,所以就不用枚举每一组内的物品了。 dpij表示考虑到前i组,选了其中j组的方案数。 cnt[i]表示第i组有多少个 dpij += dpi-1j-1*cnt[i] 考虑要第i组 dpij += dpi-1j 考虑不要第i组 然后就可以了 我写的时候顺便空间优化了下 https://paste.ubuntu.com/p/YjzM6RmPWC/ 思路角度2:换一个角度,我们把二进制最高位相同的看作一组 dpi 表示以第i组为结尾的序列的方案数。 cnt[i]表示第i组有多少个 dpi += dpk * cnt[i] (k 从0枚举到i - 1) https://paste.ubuntu.com/p/vxPHns2YVJ/ 来源: https://www.cnblogs.com/AlexPanda/p/12631435.html

java数据类型

青春壹個敷衍的年華 提交于 2020-04-04 09:48:39
一、分类? 基本数据类型与引用数据类型。 1.1.基本数据类型: 整型(4), byte 1个字节,256种数字,范围时-128-127 short ,2个字节,2的16次方种数字,范围是 -32767-32767 int ,4个字节,2的32次方种数字。 long ,8个字节,同理推算。整型的二进制第一位表示符号,如正或者负,其他位置表示数字。如:byte型,1字节=8bit,去掉一位表示符号,则其他最大就是2的7次方。 浮点型(2) float,4个字节。double ,8个字节。PS:前一位二进制表示符号,中间9位二进制表示整数,后面的二进制位表示小数。 字符型(1) char,2字节,Unicode编码。1字节,ASCII编码。 PS:‘a’,'我‘,‘3’,为什么英文、符号、数字是一个字节?中文是2个字节? 答:ASCII编码中,1个字节可以完全完全所有字母、数字、符号。如字母有52个,数字0-9,符号算上50个,总共120个,1个字节就有2的8次方种组合,所以够用了。 在中文中,汉字几千个,所以七1个字节不够表示,所有用2个字节。即2的16次方种,可以表示所有中文了,使用Unicode编码。 布尔型(1) boolean,1个字节,2个值,true 或者false。 1.2.引用数据类型 数组、class类、抽象类(abstract class)、接口

字符编码格式小结(ASCII/Unicode/UTF-8)

别等时光非礼了梦想. 提交于 2020-04-04 06:47:37
1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。 上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。 ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。 2、非ASCII编码 英语用128个符号编码就够了,但是用来表示其他语言,128个符号是不够的。比如,在法语中,字母上方有注音符号,它就无法用ASCII码表示。于是,一些欧洲国家就决定,利用字节中闲置的最高位编入新的符号。比如,法语中的é的编码为130(二进制10000010)。这样一来,这些欧洲国家使用的编码体系,可以表示最多256个符号。 但是,这里又出现了新的问题。不同的国家有不同的字母,因此,哪怕它们都使用256个符号的编码方式,代表的字母却不一样。比如

unicode

纵然是瞬间 提交于 2020-04-04 04:48:23
Unicode只有一个字符集,中、日、韩的三种文字占用了Unicode中0x3000到0x9FFF的部分 Unicode目前普遍采用的是UCS-2,它用两个字节来编码一个字符, 比如汉字"经"的编码是0x7ECF,注意字符码一般用十六进制来 表示,为了与十进制区分,十六进制以0x开头,0x7ECF转换成十进制 就是32463,UCS-2用两个字节来编码字符,两个字节就是16位二进制, 2的16次方等于65536,所以UCS-2最多能编码65536个字符。 编码从0到127的字符与ASCII编码的字符一样,比如字母"a"的Unicode 编码是0x0061,十进制是97,而"a"的ASCII编码是0x61,十进制也是97, 对于汉字的编码,事实上Unicode对汉字支持不怎么好,这也是没办法的, 简体和繁体总共有六七万个汉字,而UCS-2最多能表示65536个,才六万 多个,所以Unicode只能排除一些几乎不用的汉字,好在常用的简体汉字 也不过七千多个,为了能表示所有汉字,Unicode也有UCS-4规范,就是用 4个字节来编码字符 中文名 Unicode码 外文名 Unicode 文 字 中、日、韩 字 符 UCS-2 分 类 计算机科学 目录 1 定义 2 方法 定义 编辑 Unicode码扩展自ASCII 字元集 。在严格的ASCII中,每个字元用7位元表示

C++程序设计POJ》《WEEK7 输入输出和模板》《二进制文件读写》《模板》《类模板与派生》

与世无争的帅哥 提交于 2020-04-04 00:44:19
二进制读文件 ifstream fstream 读 ofstream fstream 写 inFile.gcount();//看刚才读了多少个字节 比如快到文件末尾,如果最后只剩8个字节,却要读10个字节,最后只会读8个字节 fstream东西比较全 ‘\0’ 为什么存成.dat格式?比纯文本节省空间,空格也占空间,纯文本是字符串格式 10亿,10个字节,.dat 一个int 4个字节搞定 Jane 本来后面就有个\0 Mike 内存缓冲区 二进制文件和文本文件的区别 二进制读文件 ifstream 和 fstream 的成员函数: istream& read (char* s, long n) 将文件读指针指向的地方的 n 个字节内容,读入到内存地址 s ,然 后将文件读指针向后移动 n 字节 以 ios ::in 方式打开文件时,文件读指 针开始指向文件 开头 。 二进制写文件: ofstream 和 fstream 的成员函数: istream& write (const char* s, long n); 将内存地址 s 处的 n 个字节内容,写入到文件中写指针指向的位置, 然后将文件写指针向后移动 n 字节 以 ios::out 方式打开文件时,文 件写指针开始指向文件开头 , 以 ios::app 方式打开文件时,文件写 指针开始指向文件尾部 。 /* 二进制文件读写

Python变量类型和运算符(变量)

回眸只為那壹抹淺笑 提交于 2020-04-03 18:41:07
python 变量 Python 使用等号(=)作为赋值运算符, 注意,变量名其实就是标识符,因此在命名时,既要遵守标识符的命名规范,还要避免和 Python的内置函数重名。 强类型语言和弱类型语言 必须指定该变量所能存储的数据类型,以 C 语言为例: int a = 20 和强类型语言相对应的是弱类型语言,Python 就是典型代表之一。弱类型语言有以下 2 个特征: 变量无须声明即可直接赋值,对一个不存在的变量赋值就相当于定义了一个新变量。 变量的数据类型可以动态改变:同一个变量可以一会儿被赋值为整数值,一会儿被赋值为字符串。 python 数值类型 Python 中的数值类型主要包括整形、浮点型和复数类型。整形专门用来表示整数,即没有小数部分的数。在 Python 中,整数包括正整数、0 和负整数。 short、int、long 整形类型存储,除此之外,Python 的整型还支持 None 值(空值) [root@kube python]# py demo6.py <class 'int'> <class 'int'> <class 'int'> <class 'NoneType'> [root@kube python]# cat demo6.py a=1 b=222 c=4444444444444444444444444444444444444444444444444444

第一章: 计算机基础

我与影子孤独终老i 提交于 2020-04-02 19:58:28
1.1硬件基础 计算机基本的硬件由:CPU / 内存 / 主板 / 硬盘 / 网卡 / 显卡 等组成,只有硬件但硬件之间无法进行交流和通信 1.2操作系统 操作系统用于协调和控制硬件之间进行工作,常见的操作系统有哪些 Windows windows 7 windows 10 windows server Linux Red Hat Linux centos 【公司线上一般用】 mac 1.3解释器或编译器 编程语言的开发者写的一个工具,将用户写的代码转换成010101交给操作系统去执行 解释性和编译型语言 解释性语言就类似于实时翻译 ,代表:Python / PHP 编译型语言类似于:说完之后,整体在进行翻译 代表:C / C++ / Java /go 1.4软件(应用程序) 软件又称为应用程序,就是我们在电脑上使用的工具,类似于:记事本 / 图片查看 / 游戏 1.5进制 对于计算机而言无论文件存储 / 网络传输数据本质上都是:二进制 (0101010101),比如:电脑上存储的视频/图片/文件都是二进制;QQ/微信聊天发送的表情/文字/语言/视频也全部都是二进制 进制: 二进制,计算机内部 8进制 10进制,人来进行使用一般情况下计算机可以获取10进制,然后再内部会自动转换成二进制并操作 16进制,一般用于表示二进制(用更短的内容表示更多的数据),一般是:\x开头 2进制

lua:把lua文本文件“编译”成二进制的文本

天涯浪子 提交于 2020-04-02 19:37:22
当你发布lua时,你或许不想用户看到你的lua源码,更不想用户修改你的lua代码和系统内部的秘密,那就需要用别的方式来发布。 最终的文本文件可以通过lua作者提供的标准发布版本中的程序来执行。这个程序称做luac.exe,把lua文本文件“编译”成二进制的文件。这样就可以让别人更难知道你的游戏是如何运行的,采用了什么技术。 当写好一个lua文件后,可以通过一个典型的编译命令去“编译”这个文件: 这一行代码会编译helloworld.lua脚本并在helloworld文件中生成二进制数据。 lua解析器并不关心你传给它的是文本文件还是二进制文件,也不关心扩展名是什么。 用这个方法,就不用担心别人可以看到你的代码了。 补: 发现当用到require加载某些子模块时会有出错。根据《Lua 程序设计第二版》第15章所说: 当require一个模块mod.sub时,require会用原始的模块名“mod.sub”作为key来查询table package.loaded和package.preload,其中,模块名中的点在搜索中没有任何意义。 当搜索一个定义子模块的文件时,require会将点转换为另一个字符,通常就是系统的目录分隔符。转换之后require就像搜索其他名称一样来搜索这个名称。 所以最好的方法是在编译完lua脚本后,也把二进制文件改成.lua后缀。 来源: https:/

30.6. MySQL并发控制,加锁和事务,隔离级别,日志等

点点圈 提交于 2020-04-02 12:12:18
并发控制 锁粒度: 表级锁 行级锁 锁: 读锁:共享锁,只读不可写(包括 自己当前用户 和当前事务) ,多个读互不阻塞 写锁:独占锁,排它锁,写锁会阻塞其它事务(不包括当前事务)的读和它锁 实现 存储引擎:自行实现其锁策略和锁粒度 服务器级:实现了锁,表级锁,用户可显式请求 分类: 隐式锁:由存储引擎自动施加锁 显式锁:用户手动请求 锁策略:在锁粒度及数据安全性寻求的平衡机制 显式使用锁 LOCK TABLES 加锁 lock tables tbl_name [[AS] alias] lock_type [, tbl_name [[AS] alias] lock_type] ... lock_type: READ ,WRITE UNLOCK TABLES 解锁 FLUSH TABLES [tb_name[,...]] [WITH READ LOCK] 关闭所有正在打开的表,同时清除掉查询缓存以及准备好的语句缓存, 如果加上with read lock 选项的话,它代表关闭所有正在打开的表并加上全局锁(不清除缓存了), 通常在备份前加全局读锁 SELECT clause [FOR UPDATE | LOCK IN SHARE MODE] 查询时加写或读锁 注意点1(加锁): 注意,读锁加到表上之后,此表将只能读,不能进行其他任何操作。