二进制

python字符串编码

浪尽此生 提交于 2020-02-18 07:03:15
python 默认编码   python 2.x 默认的字符编码是 ASCII ,默认的文件编码也是 ASCII 。   python 3.x 默认的字符编码是 unicode ,默认的文件编码是 utf-8 。 中文乱码 问题   无论以什么编码在内存里显示字符,存到硬盘上都是 二 进制,所以编码不对,程序就会出错。   常见编码有 ascii 编码(美国), GBK 编码(中国), shift_JIS 编码(日本 ), unicode (统一编码)等。   需 要注意的是,存到硬盘上时是以何种编码存的,再从硬盘上读出来时,就必须以何种编码读,要不然就 会出现乱码问题 。   常见的编码错误的原因有 如下,出现乱码时,按照编码之前的关系,挨个排错就能解决问题。      python 解释器的默认编码 ;      Terminal 使用的编码 ;      python 源文件文件编码 ;     操作系统的语言设置 。   Python 支持中文的编码: utf-8 、 gbk 和 gb2312 。 uft-8 为 国际通用 , 常用有数据库、编写代码 。 gbk 如 windows 的 cmd 使用 。 编码转换   如果想要中国的软件可以正常的在美国人的电脑上实现,有下面两种方法:    让美国人的电脑都装上 gbk 编码    让你的软件编码以 utf-8 编码   

MySQL---二进制日志

泄露秘密 提交于 2020-02-18 06:42:37
mysql---二进制日志 记录了所有对MySQL数据库的修改事件,包括增删改查事件和对表结构的修改事件 二进制日志的开启 #是否启用了日志 mysql> show variables like 'log_bin'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_bin | OFF | +---------------+-------+ [mysqld] log-bin [=DIR \ [filename]] log_bin=mysql-bin 名字可以随便起(mysql-bin) 格式 binlog_format={STATEMENT|ROW|MIXED} 语句(statement):默认的记录格式,基于段 行(row):定义的并非数据本身而是这一行的数据是什么 混合模式(mixed):交替使用行和语句、由mysql服务器自行判断 基于段的日志格式 优点 日志记录量相对较小,节约磁盘及网络IO 只对一条记录修改或者插入,row格式所产生的日志量小于段产生的日志量 缺点 必须要记录上下文信息,保证语句在从服务器上执行结果与主服务器相同 特定函数如UUID(),user()这样非确定性函数还是无法复制;可能造成MySQL复制的主备服务器数据不一致 操作 mysql

mysqlbinlog恢复数据

☆樱花仙子☆ 提交于 2020-02-18 06:41:42
操作命令: 复制代码 代码如下: show binlog events in 'mysql-bin.000016' limit 10; reset master 删除所有的二进制日志 flush logs 产生一个新的binlog日志文件 show master logs; 或者 show binary logs; 查看二进制文件列表和文件大小 复制代码 代码如下: ./mysqlbinlog --start-datetime="2012-05-21 15:30:00" --stop-datetime="2012-05-21 16:40:00" /binlog/mysql-bin.000005 > a.log 2. 要想通过日志恢复数据库,在你的 my.cnf 文件里应该有如下的定义,log-bin=mysql-bin,这个是必须的 binlog-do-db=db_test ,这个是指定哪些数据库需要日志,每行一个,如果不指定的话默认就是所有数据库. 复制代码 代码如下: [mysqld] log-bin=mysql-bin binlog-do-db=db_test binlog-do-db=db_test2 3.删除二进制日志: 复制代码 代码如下: mysql> reset master (清空所有的二进制日志文件) purge master logs to 'mysql

文件处理方法-Python

十年热恋 提交于 2020-02-18 05:41:32
文章目录 1. 文件说明 1.1 文本文件 1.2 二进制文件 2. 文件处理的一般步骤 2.1 文件的打开 2.2 文件的关闭 2.3 文件内容的读取 2.4 数据的文件写入 3. 总结 1. 文件说明 文件是存储在存储器上的数据序列,在计算机中,所有文件都是以二进制的方式进行存储的,而文件的展示形式一般分为两种: 文本形式 和 二进制形式 。 1.1 文本文件 1.由单一特定编码组成的文件,如 utf-8 编码。 1.2 二进制文件 1.直接由比特0和1组成的文件,没有统一字符编码。 在二进制文件中,0和1一般根据 预定义 的格式进行了结构组织,这种结构也就是文件的格式,结构的不同也就代表了文件格式的不同。例如 .png , .avi 等文件。 无论是文本文件还是二进制文件,在计算机中都是以二进制方式进行存储的,而有统一编码的我们称其为文本文件,没有统一编码的我们称其为二进制文件。不过对于任何类型的文件,我们都可以用二进制的方法进行打开。 2. 文件处理的一般步骤 当我们拿到一个文件时,处理步骤一般分为三步: 1.打开 2.操作 3.关闭 其中第一步打开文件是必不可少的,不打开文件是无法对其进行相关操作的(当然,如果你只是想要进行像删除它之类的操作当我没说),第二步操作是我们处理文件的核心,最后关闭它是为了防止它继续占用我们的内存。 打开文件和关闭文件一般来说都只需要一行代码:

剑指offer - 二进制中1的个数

穿精又带淫゛_ 提交于 2020-02-18 05:33:06
题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 解法一:Python # -*- coding:utf-8 -*- class Solution : def NumberOf1 ( self , n ) : # write code here if n < 0 : n = n & 0xffffffff return bin ( n ) . count ( "1" ) 这里详细解释一下 n = n & 0xffffffff a = bin(-3) print(a) a = bin(3) print(a) b = bin(-3 & 0xffffffff) print(b) c = bin(0xfffffffd) print(c) //输出 //-0b11 //0b11 //0b11111111111111111111111111111101 //0b11111111111111111111111111111101 Python中的整型是补码形式存储的 Python中bin一个负数(十进制表示),输出的是它的原码的二进制表示加上个负号 Python中bin一个负数(十六进制表示),输出的是对应的二进制表示。(注意此时) 所以你为了获得负数(十进制表示)的补码,需要手动将其和十六进制数0xffffffff进行按位与操作,得到结果也是个十六进制数,再交给bin(

原码,反码,补码,移位

ε祈祈猫儿з 提交于 2020-02-17 07:09:34
https://www.cnblogs.com/btgyoyo/p/6371398.html 复习下二进制的有关知识 1.所有的数据都是以二进制的形式存储在硬盘上。对于一个字节的8位到底是什么类型 计算机是如何分辨的呢? 其实计算机并不负责判断数据类型,数据类型是程序告诉计算机该如何解释内存块. 2.对于字符的存储,先将字符转化成其字符集的码点,(码点就是一个数字),然后把该数字转成2进制存储。所以我们只要记得数字的存储就ok了。字符的码点程序采用无符号处理,即没有符号位,数值型默认都是有符号位的。 1个字节的最高位是符号位所以一个数字能够存储的范围是-128-127 3.原码 正数5: 0000 0101 负数5: 1000 0101 4.反码 正数5: 0000 0101 负数5: 1111 1010 5.补码 正数5: 0000 0101 负数5: 1111 1011(-5在硬盘上的存储方式) 1.可以看到正数的原码 与 其反码补码相同 2.负数的原码最高位为13.负数的反码: 符号位不变,其余各位按位取反4.负数的补码:在其反码的基础上+15.负数是以其补码的方式存储在硬盘上的 6.左移操作(<<) 规则: 右边空出的位用0填补 高位左移溢出则舍弃该高位。 计算机中常用补码表示数据: 数据 127,补码和原码一样:0111 1111。 左移一位: 1111 1110 ->

深入理解按位异或运算符

倾然丶 夕夏残阳落幕 提交于 2020-02-17 06:15:40
异或运算: 首先异或表示当两个数的二进制表示,进行异或运算时,当前位的两个二进制表示不同则为1相同则为0.该方法被广泛推广用来统计一个数的1的位数! 参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。 即:   0^0 = 0,   1^0 = 1,   0^1 = 1,   1^1 = 0 按位异或的3个特点: (1) 0^0=0,0^1=1 0异或任何数=任何数 (2) 1^0=1,1^1=0 1异或任何数-任何数取反 (3) 任何数异或自己=把自己置0 按位异或的几个常见用途: (1) 使某些特定的位翻转 例如对数10100001的第2位和第3位翻转,则可以将该数与00000110进行按位异或运算。       10100001^00000110 = 10100111 (2) 实现两个值的交换,而不必使用临时变量。 例如交换两个整数a=10100001,b=00000110的值,可通过下列语句实现:     a = a^b;   //a=10100111     b = b^a;   //b=10100001     a = a^b;   //a=00000110 位运算 位运算时把数字用二进制表示之后,对每一位上0或者1的运算。理解位运算的第一步是理解二进制。二进制是指数字的每一位都是0或者1.比如十进制的2转化为二进制之后就是10。

移位运算符

不想你离开。 提交于 2020-02-17 04:54:36
移位运算符 就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。   在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,规定实际移动的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相同。移动long型的数值时,规定实际移动的次数是移动次数和64的余数,也就是移动66次和移动2次得到的结果相同。   三种移位运算符的移动规则和使用如下所示:   <<运算规则:按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。   语法格式:   需要移位的数字 << 移位的次数   例如: 3 << 2,则是将数字3左移2位   计算过程:   3 << 2   首先把3转换为 二进制数字 0000 0000 0000 0000 0000 0000 0000 0011,然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100,则转换为十进制是12.数学意义:    在数字没有溢出的前提下,对于正数和负数, 左移一位都相当于乘以2的1次方,左移n位就相当于乘以

java中<<,>>和>>>的含义

谁都会走 提交于 2020-02-17 04:48:58
<<,>>,>>>为java中的移位运算符。 <<表示左移运算符 例如8<<2,表示将8向左移2位,结果为32。低位补0。 二进制演算: 8的二进制:1 0 0 0 向左移动两位结果为1 0 0 0 0 0,换算成十进制即为32,也可以简单的理解为,左移就是将数变大,相当于8*2^2=32。 左移运算符的运算规律:将左边的数按照右边的数往左移动几位。 ”>>”表示右移运算符 例如 8>>2,表示将8向右移动2位,结果为2。高位补0。 二进制演算: 8的二进制:1 0 0 0 向右移动两位:0 0 1 0即为2,也可以简单的理解为将数向右移位就是将数变小,相当于8除以2^2=2。 右移运算符运算规律:将左边的数按照右边的数右移几位。 ”>>>”表示无符号右移运算符。高位补0 例如8>>>2表示将8向右移位2位,结果为2。这个也可以和右移运算符一起理解。 来源: https://www.cnblogs.com/jasonboren/p/11117370.html

go跨平台编译

人盡茶涼 提交于 2020-02-17 04:43:08
编译成Win可用二进制 CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build 编译成Linux可用二进制 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build 编译成Mac可用二进制 CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build 注意以上命令都是基于64为系统 和 amd64平台。 来源: CSDN 作者: Clown95 链接: https://blog.csdn.net/yang731227/article/details/104344245