二进制

Linux上安装使用boost入门指导

本小妞迷上赌 提交于 2020-03-20 12:55:07
Data Mining Linux上安装使用boost入门指导 获得boost boost分布 只需要头文件的库 使用boost建立一个简单的程序 准备使用boost二进制文件库 把你的程序链接到boost库 1.获得boost 下载boost_1_46_1.tar.bz2 解压 2.boost分布 boost_1_46_1.........................boost根目录   boost/.....................................所有boost头文件   libs/........................................Tests,.cpps,docs等的库文件 注意:   (1)boost根目录(通常是/usr/local/boost_1_46_1)想到$BOOST_ROOT变量中   (2)编译程序时如果用到boost库,需要指定头文件路径-I$BOOST_ROOT   (3)因为所有头文件都在boost文件夹下,并且头文件都是hpp后缀,所#include形如:     #include <boost/whaever.hpp> 3.只需要头文件的库   绝大多数的boost库都是header-noly的:它们完全由包含模板和inline函数的头文件组成,不需要单独编译和二进制库文件

转:Mysql使用主从复制机制(replication)

笑着哭i 提交于 2020-03-18 19:48:39
内容转自:http://blog.sina.com.cn/s/blog_4e424e2101000c1z.html;http://blog.sina.com.cn/s/blog_4e424e2101000c20.html MySQL支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将 更新写入二进制日志文件,并维护日志文件的一个索引以跟踪日志循环。当一个从服务器连接到主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知 下一次更新。 为什么使用主从复制? 1、主服务器/从服务器设置增加了健壮性。主服务器出现问题时,你可以切换到从服务器进行恢复。 2、通过在主服务器和从服务器之间切分处理客户查询的负荷,可以得到更好的客户响应时间。但是不要同时在主从服务器上进行更新,这样可能引起冲突。 3、使用复制的另一个好处是可以使用一个从服务器执行备份,而不会干扰主服务器。在备份过程中主服务器可以继续处理更新。 主从复制的原理: MySQL使用3个线程来执行复制功能(其中1个在主服务器上,另2个在从服务器上)。 第1个线程:当发出START SLAVE时,从服务器创建一个I/O线程,以连接主服务器并让主服务器发送二进制日志。 第2个线程:

负数的二进制表示

邮差的信 提交于 2020-03-18 17:35:53
3 月,跳不动了?>>> 计算机中,所有数据最终都是使用二进制数表达。 如何将一个10进制数如何转换为二进制数以及如何将如何将一个16进制数如何转换为二进制数,详见下图。 假设有一个 int 类型的数,值为5,那么,我们知道它在计算机中表示为: 00000000 00000000 00000000 00000101 5转换成二进制:101,不过int类型的数占用4字节(32位),所以前面填了一堆0。 现在想知道,-5在计算机中如何表示? 在计算机中,负数以其正值的补码形式表达 什么叫补码呢?这得从原码,反码说起。 原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。 比如 00000000 00000000 00000000 00000101 是 5的 原码。 反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。 取反操作指:原为1,得0;原为0,得1。(1变0; 0变1) 比如:将 00000000 00000000 00000000 00000101 每一位取反,得 11111111 11111111 11111111 11111010 。 称: 11111111 11111111 11111111 11111010 是 00000000 00000000 00000000 00000101 的反码。 反码是相互的,所以也可称: 11111111

Mysql主从复制

有些话、适合烂在心里 提交于 2020-03-18 14:26:37
一:主从复制 一:介绍 主从复制就是从库不断向主库要数据,来更新自身的数据库以便自身的数据库数据和主库相同。基于二进制日志完成的. 作用: 1、做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。 2、架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能。 3、读写分离,使数据库能支撑更大的并发。在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁,保证了前台速度。 简单流程介绍:从库读取master.info 中最后一个二进制日志(例mysql-bin.000012)序号和主库连接信息去连接主库(构建的是长链接,会一直问主库要数据),主库通过show master status查看当前最新的二进制日志,假设是mysql-bin.000020,那么主库就会将12-20之间的二进制日志都通过dump线程发送给从库,然后从库进行一系列的更新。 简单搭建一个主从: 构建如下一个主从 Master slave 3307---->3308 1. 3307中创建复制用户 主库开启二进制日志 vim /data/3307/my.cnf log_bin=/data/3307/mysql

Python3中IO文件操作的常见用法

自古美人都是妖i 提交于 2020-03-18 08:18:24
首先创建一个文件操作对象: f = open(file, mode, encoding) file指定文件的路径,可以是绝对路径,也可以是相对路径 文件的常见mode: mode = “r” # 只读 mode = “w” # 只写 mode = “a” # 追加 mode = “r+” #可以读写 正常情况最常用的方式就是r+,通过设置光标的方式进行读写! 详细的mode: Mode Annotations r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 r+ 打开一个文件用于读写。文件指针将会放在文件的开头。 rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后

fopen 参数mode

一笑奈何 提交于 2020-03-18 08:17:31
FILE * fopen(const char * path,const char * mode); 参数mode字符串则代表着流形态。   mode有下列几种形态字符串:   r 打开只读文件,该文件必须存在。   r+ 打开可读写的文件,该文件必须存在。   rb+ 读写打开一个二进制文件,只允许读写数据。   rt+ 读写打开一个文本文件,允许读和写。   w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。   w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。   a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)   a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)   wb 只写打开或新建一个二进制文件;只允许写数据。   wb+ 读写打开或建立一个二进制文件,允许读和写。   wt+ 读写打开或着建立一个文本文件;允许读写。   at+ 读写打开一个文本文件,允许读或在文本末追加数据。   ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。  

创建txt文件,并且写入内容

旧时模样 提交于 2020-03-18 08:16:45
使用fopen的w方式就可以创建一个新的txt文件,如果文件名存在该文件内容会消失。 1. fopen的函数原型:FILE * fopen(const char * path,const char * mode);    fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:   r 以只读方式打开文件,该文件必须存在。   r+ 以可读写方式打开文件,该文件必须存在。   rb+ 读写打开一个二进制文件,允许读数据。   rw+ 读写打开一个文本文件,允许读和写。   w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。   w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。   a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)   a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)   wb 只写打开或新建一个二进制文件;只允许写数据。   wb+ 读写打开或建立一个二进制文件,允许读和写。   wt+ 读写打开或着建立一个文本文件;允许读写。   at+

C\\C++中 fopen中文件打开方式的区别:

試著忘記壹切 提交于 2020-03-18 08:15:53
在C语言中,大家常用到fopen打开文件,准备进行写操作,再用fwrite把数据写入文件,最后用fclose关闭文件。 如以下C代码: #include <stdio.h> char buf[10] = {10,10,10,10,10,10,10,10,10,10}; FILE *fp = fopen("c:\\test.dat","w"); fwrite(buf,1,10,fp); fclose(fp); FILE *fp1 = fopen("c:\\test1.dat","wb"); fwrite(buf,1,10,fp); fclose(fp1); 我们注意到,程序的第一段定义一个数组,每个分量的值为:10,等价的十六进制为0A。 第二段,先是打开一个文件test.dat进行写操作,再是把10个数据写入文件,最后关闭文件。 第三段,功能差不多,只是文件名换成了test1.dat,打开文件的模式换成了wb. 第二段和第三段有什么区别呢?我们看一下最后的文件内容: test.dat: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A test1.dat: 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 原因是为什么呢?这就是w 和 wb的区别,w是以文本方式打开文件,wb是二进制方式打开文件

MariaDB 主从复制

两盒软妹~` 提交于 2020-03-18 07:49:39
MySQL Replication :NySQL复制,MySQL的复制默认为异步工作模式 mysql的复制功能是mysql内置的,装上它之后就具备了这个功能,而mysql复制是mysql实现大规模高性能应用的一个基本工具,是 mysql完成水平扩展的基本架构,为了能够应付更多的访问请求,通常情况下我们需要对服务器进行扩展,而扩展通常有两种方式:向上扩展和向外扩展; 向上扩展: scale on,也称为垂直扩展,一般是扩充服务器的内存或CPU颗数的这种就是向上扩展。 向外扩展: scale out,也称为水平扩展,比较一台服务器不够,再加一台服务器,再不够再加,这种情况就是向外扩展。 其实MySQL的的复制功能就是使用MySQL向外扩展的能力,也就是水平扩展的功能。 所谓同步的复制: 首 先主服务器每更新一条数据先写到磁盘文件中,同时还要写一个到二进制日志文件中,从服务器就会到主服务器请求二进制信息保存在中继日志中,保存好后由本地 的SQL thread从中继日志应用到从服务器的本地有磁盘文件中,当这个过程完成之后再由从服务器返回确认结果给主服务器,主服务器才返回结果给客户端的。 所谓异步复制: 当主服务器要写数据时,先写到本地的磁盘,同时写到二进制文件日志中,写好二进制日志文件后就把结果返回给客户端,至于从服务有没有来主服务器同步二进制日志他不关心。 注意

PAT A1010 Radix

戏子无情 提交于 2020-03-17 21:16:10
题目难度:三颗星 题目大意:给出两个数和 然后给出其中一个数的进制,要求计算出另一个数和该数相等的进制。 题目坑点:首先就是转换,根据tag把其中的一个已知的转换为十进制,然后再对另一个数进行二分的进制查找,查找很简单,问题就是两个数转换之后的对比,因为进制很大,范围很大,因此可能超过LL溢出,因此需要考虑溢出的情况,之前写都没有考虑,导致好多测试点都没通过,看了算法笔记之后,加了溢出的判断,就直接ac。。。。考虑不周全。 代码如下: #include < iostream > #include < stdlib . h > #include < queue > #include < stack > #include < algorithm > #include < map > #include < cstring > typedef long long LL ; using namespace std ; typedef struct { int num [ 15 ] = { 0 } , len = 0 ; } Num ; Num to_Num ( char a [ ] , LL & maxnum ) { Num n ; for ( int i = 0 ; i < strlen ( a ) ; i ++ ) { if ( a [ i ] <= '9' ) { n . num [