二进制代码

C++读写文件总结 .

丶灬走出姿态 提交于 2020-02-01 00:22:03
在C++中如何实现文件的读写? 一、ASCII 输出 为了使用下面的方法, 你必须包含头文件<fstream.h>(译者注:在标准C++中,已经使用<fstream>取代< fstream.h>,所有的C++标准头文件都是无后缀的。)。这是 <iostream.h>的一个扩展集, 提供有缓冲的文件输入输出操作. 事实上, <iostream.h> 已经被<fstream.h>包含了, 所以你不必包含所有这两个文件, 如果你想显式包含他们,那随便你。我们从文件操作类的设计开始, 我会讲解如何进行ASCII I/O操作。如果你猜是"fstream," 恭喜你答对了! 但这篇文章介绍的方法,我们分别使用"ifstream"?和 "ofstream" 来作输入输出。 如果你用过标准控制台流"cin"?和 "cout," 那现在的事情对你来说很简单。 我们现在开始讲输出部分,首先声明一个类对象。 ofstream fout; 这就可以了,不过你要打开一个文件的话, 必须像这样调用ofstream::open()。 fout.open("output.txt"); 你也可以把文件名作为构造参数来打开一个文件. ofstream fout("output.txt"); 这是我们使用的方法, 因为这样创建和打开一个文件看起来更简单. 顺便说一句, 如果你要打开的文件不存在,它会为你创建一个,

C#位运算讲解与示例

匆匆过客 提交于 2020-01-31 09:18:23
今天在项目中遇到按位或组合权限串的问题: 首先每一个权限数都是2的N次方数 如:k1=2 ; //添加 k2=4 ; //删除 k3=8; //修改 ... 如此定义功能权限数,当需要组合权限时,就需要对各个所拥有的权限数按位或了。 如: purview = k2|k3; // 赋给添加和删除权限 当需要判断在权限串中是否拥有某一权限时,就需要进行按位与。 如: if((purview & k1) >0)//判断此权限串是否拥有添加权限,结果>0 则进入if语句代码块中 { .... } 如去掉 删除权限: purview=purview&(uint.MaxValue - (uint)k2) 说到这里肯定会有疑问了,别急我来细细讲解。 第一,2的8位二进制值为00000010 4的8位二进制值为00000100 8的8位二进制值为00001000 第二,当对8和4进行按位或操作后,结果为: 4|8 = 12 00000100 |00001000 = 00001100 为什么会是这样呢?在进行按位或操作时 00000001|00000001=00000001 ;00000001|00000000=1 ;00000000|00000000=00000000 也就是说除了0|0结果是0外,其它运算结果的都是1 所以 00000100 |00001000 = 00001100 也就说上面的

C#位运算讲解与示例

不羁岁月 提交于 2020-01-31 08:28:15
文章转载自http://www.cnblogs.com/zgqys1980/archive/2010/05/31/1748404.html 今天在项目中遇到按位或组合权限串的问题: 首先每一个权限数都是2的N次方数 如:k1=2 ; //添加 k2=4 ; //删除 k3=8; //修改 ... 如此定义功能权限数,当需要组合权限时,就需要对各个所拥有的权限数按位或了。 如: purview = k2|k3; // 赋给添加和删除权限 当需要判断在权限串中是否拥有某一权限时,就需要进行按位与。 如: if((purview & k1) >0)//判断此权限串是否拥有添加权限,结果>0 则进入if语句代码块中 { .... } 说到这里肯定会有疑问了,别急我来细细讲解。 第一,2的8位二进制值为00000010 4的8位二进制值为00000100 8的8位二进制值为00001000 第二,当对8和4进行按位或操作后,结果为: 4|8 = 12 00000100 |00001000 = 00001100 为什么会是这样呢?在进行按位或操作时 00000001|00000001=00000001 ;00000001|00000000=1 ;00000000|00000000=00000000 也就是说除了0|0结果是0外,其它运算结果的都是1 所以 00000100 |00001000

C#位运算讲解与示例

社会主义新天地 提交于 2020-01-31 07:51:21
今天在项目中遇到按位或组合权限串的问题: 首先每一个权限数都是2的N次方数 如:k1=2 ; //添加 k2=4 ; //删除 k3=8; //修改 ... 如此定义功能权限数,当需要组合权限时,就需要对各个所拥有的权限数按位或了。 如: purview = k2|k3; // 赋给添加和删除权限 当需要判断在权限串中是否拥有某一权限时,就需要进行按位与。 如: if((purview & k1) >0)//判断此权限串是否拥有添加权限,结果>0 则进入if语句代码块中 { .... } 说到这里肯定会有疑问了,别急我来细细讲解。 第一,2的8位二进制值为00000010 4的8位二进制值为00000100 8的8位二进制值为00001000 第二,当对8和4进行按位或操作后,结果为: 4|8 = 12 00000100 |00001000 = 00001100 为什么会是这样呢?在进行按位或操作时 00000001|00000001=00000001 ;00000001|00000000=1 ;00000000|00000000=00000000 也就是说除了0|0结果是0外,其它运算结果的都是1 所以 00000100 |00001000 = 00001100 也就说上面的 purview = k2|k3 的二进制值结果是 purview =00000100 |00001000

C#位运算讲解与示例

陌路散爱 提交于 2020-01-31 07:19:36
首先每一个权限数都是2的N次方数 如:k1=2 ; //添加 k2=4 ; //删除 k3=8; //修改 ... 如此定义功能权限数,当需要组合权限时,就需要对各个所拥有的权限数按位或了。 如: purview = k2|k3; // 赋给添加和删除权限 当需要判断在权限串中是否拥有某一权限时,就需要进行按位与。 如: if((purview & k1) >0)//判断此权限串是否拥有添加权限,结果>0 则进入if语句代码块中 { .... } 说到这里肯定会有疑问了,别急我来细细讲解。 第一,2的8位二进制值为00000010 4的8位二进制值为00000100 8的8位二进制值为00001000 第二,当对8和4进行按位或操作后,结果为: 4|8 = 12 00000100 |00001000 = 00001100 为什么会是这样呢?在进行按位或操作时 00000001|00000001=00000001 ;00000001|00000000=1 ;00000000|00000000=00000000 也就是说除了0|0结果是0外,其它运算结果的都是1 所以 00000100 |00001000 = 00001100 也就说上面的 purview = k2|k3 的二进制值结果是 purview =00000100 |00001000 =00001100了 第三

算法---二进制/二进制枚举

拥有回忆 提交于 2020-01-30 12:44:46
#一 二进制操作 算数位运算: 1、与(&): 对于指定的两个数A=60(0011 1100) B=13(0000 1101) 执行一下操作 A&B=12(0000 1100) 就是对二进制每一位进行了一次与操作,同为1,结果 为1,否则为0。 2、或(|): 对于指定的两个数A=60(0011 1100) B=13(0000 1101) 执行一下操作 A|B=61(0011 1101) 就是对二进制每一位进行了一次或操作,同为0,结果为0,否则为1 3、非 按位取反(~): 对于指定的一个数A=60(0011 1100) 执行以下操作 ~A=195(1100 0011) 就是对二进制每一位进行了一次取反操作,若二进制数位0,则变成1,否则变成0. 4、异或运算 异或,英文为exclusive OR,缩写成xor 异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为: a⊕b = (¬a ∧ b) ∨ (a ∧¬b) 如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。 异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位。

C++ 把输出结果写入到文件中

谁说我不能喝 提交于 2020-01-28 10:12:11
文件 I/O 在C++中比烤蛋糕简单多了。 在这篇文章里,我会详细解释ASCII和二进制文件的输入输出的每个细节,值得注意的是,所有这些都是用C++完成的。   一、ASCII 输出   为了使用下面的方法, 你必须包含头文件<fstream.h>(译者注:在标准C++中,已经使用<fstream>取代< fstream.h>,所有的C++标准头文件都是无后缀的。)。这是 <iostream.h>的一个扩展集, 提供有缓冲的文件输入输出操作. 事实上, <iostream.h> 已经被<fstream.h>包含了, 所以你不必包含所有这两个文件, 如果你想显式包含他们,那随便你。我们从文件操作类的设计开始, 我会讲解如何进行ASCII I/O操作。如果你猜是"fstream," 恭喜你答对了! 但这篇文章介绍的方法,我们分别使用"ifstream"?和 "ofstream" 来作输入输出。   如果你用过标准控制台流"cin"?和 "cout," 那现在的事情对你来说很简单。 我们现在开始讲输出部分,首先声明一个类对象。ofstream fout;   这就可以了,不过你要打开一个文件的话, 必须像这样调用ofstream::open()。 fout.open("output.txt");   你也可以把文件名作为构造参数来打开一个文件. ofstream fout("output

Hkhv喜欢二进制 NBUT - 1666

白昼怎懂夜的黑 提交于 2020-01-27 22:50:23
题目链接 https://vjudge.net/problem/NBUT-1666 hkhv学长最近对二进制数很感兴趣,喜欢一切0和1组成的数。现在有一个十进制整数n,问你1到n之间有多少个数是只有0和1组成的类似二进制的数,输出他们的个数。 题解:如果某位大于‘1’,就将其后所有的位置为‘’1’‘,然后当作二进制求他多大,他多大说明就有几个比它小的只有‘0’,‘1’组成的整数 代码 #include<iostream> #include<cstdio> #include<algorithm> #include<string> #include<cmath> using namespace std; int main() { string s; while(cin >> s){ for (int i = 0; i < s.size(); i++) { if (s[i] > '1') { for (int j = i; j < s.size(); j++) { s[j] = '1'; } break; } } // cout << s << endl; int ans = 0; reverse(s.begin(), s.end()); for (int i = 0; i < s.size(); i++) { if (s[i] == '0') continue; else ans +=

JY的题目(水)

耗尽温柔 提交于 2020-01-27 14:51:06
JY的题目 【问题背景】 一天,JY觉得DZY智商太低下,决定和他离婚,除非DZY做出来她出的题目。DZY当然非常想和JY在一起,所以他只好又去请计算机大神WJC帮忙,WJC已经帮过他N多次忙了,不想再帮他了。DZY听说你的编程学的也不错,所以找到了你。你的任务是:帮助DZY解决JY出的题目。 『JY的题目』 【问题描述】 给定两个十进制正整数A和B,请计算出A和B用二进制表示时有多少位是不同的。 例如,“3”的二进制表示为“11”,“9”的二进制表示为“1001”,“11”不足4位,不足部分实际上为0,即“0011”,因此二者从右至左第2、4位不同,所以3和9用二进制表示时有两位不同。 【输入说明】 输入包括两行,第1行是一个整数n,表示有n组测试数据。紧接着n行,每行包括两个十进制正整数A和B,A、B之间用空格隔开。 【输出说明】 输出有n行,为每组测试数据中A和B用二进制表示时不相同的位数。 【样例输入】 1 3 9 【样例输出】 2 题解:直接求二进制带比较就好了 代码: #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; const int INF=0x3f3f3f3f; #define SI(x) scanf("%d",&x)

什么是二进制文件

谁说我不能喝 提交于 2020-01-27 06:52:30
转自: https://baike.baidu.com/item/%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6/996661 包含在 ASCII 及扩展 ASCII 字符 中编写的数据或程序指令的文件。 计算机文件 基本上分为二种:二进制文件和 ASCII(也称 纯文本文件 ),图形文件及文字处理程序等 计算机程序 都属于二进制文件。这些文件含有特殊的格式及计算机代码。ASCII 则是可以用任何文字处理程序阅读的简单文本文件。 中文名 二进制文件 外文名 BINary files 外国语缩写 BIN(作 文件扩展名 ) 目录 1 定义 2 使用二进制文件的好处 3 二进制文件的储存方式 4 如何使用语句操作二进制文件 5 用例 定义 广义的二进制文件即指文件,由文件在 外部设备 的存放形式为二进制而得名。狭义的二进制文件即除文本文件以外的文件。文本文件是一种由很多行 字符 构成的 计算机文件 。文本文件存在于 计算机系统 中,通常在文本文件最后一行放置文件结束标志。文本文件的 编码 基于字符定长, 译码 相对要容易一些;二进制文件 编码 是变长的,灵活利用率要高,而译码要难一些,不同的二进制文件译码方式是不同的。 从本质上来说他们之间没有什么区别,因为他们在 硬盘 上都有一种的存放方式--二进制,但是如果要对他们有些区分的话