1、&按位与1>功能:只有对应的两个二进位均为1时,结果位才为1,否则为0.例:9&5=1001&101=1,因此9&5==12>规律:二进制中,与1相&就保持原位,与0相&就为0.1. 2>|按位或 1>功能只要对应的二个二进位有一个为1时,结果位就为1,否则为0。2>举例:比如9|5,其实就.....
分类:
其他好文 时间:
2014-09-14 20:37:17
阅读次数:
197
一 、位运算实例1、用一个表达式,判断一个数X是否是2的N次方(2,4,8,16.....),不可用循环语句。 X:2,4,8,16转化成二进制是10,100,1000,10000。如果减1则变成01,011,0111,01111。两者做按位与运算,结果如果为0,则X是2的N次方。2、统计一个整数....
分类:
其他好文 时间:
2014-09-13 14:32:45
阅读次数:
163
转自:http://blog.csdn.net/hackbuteer1/article/details/7390093^: 按位异或;&:按位与; | :按位或计算机系统中,数值一律用补码来表示:因为补码可以使符号位和数值位统一处理,同时可以使减法按照加法来处理。对补码做简单介绍:数值编码分为原码,...
分类:
其他好文 时间:
2014-09-13 11:56:55
阅读次数:
213
这道题就题意来说其实就是一道简单的记录路径的0,1背包,告诉你n个物品,每种物品只能取一次,再有q个询问,问你是否能在满足选出物品的w之和为m的情况下,满足t之和为s的情况,若可以则任意输出一种方案。
因此我们可以设计状态,dp[i][j][k]为前i个物品选出部分,当t之和为j时,w之和为k的情况能否满足,若存在方案则为1,不存在则为0。而状态的转移方程也是很简单。
dp[i][j+t[i]...
分类:
其他好文 时间:
2014-09-11 19:23:52
阅读次数:
173
数据通信的校验算法核心思想:为了保证通讯数据的可靠性,通常加入校验来验证一帧数据是否有误,校验的方式有很多种,异或校验是常见的一种,你这个如2楼说的,是逐字节进行按位异或运算,结果放在最后一个字节,接收方收到数据进行同样计算,如果最后一个字节和计算结果一致,则可认为这一帧数据可信。...
分类:
编程语言 时间:
2014-09-10 19:34:10
阅读次数:
157
//**********************************第一种方法
//将一个数右移来按位与,判断最后一位是不是1,进行八次
int a = 15;
int ccc = 0;
for(int i = 0;i
{
int b = a & 1;
a = a>>1;
if(1 == b)...
分类:
其他好文 时间:
2014-09-10 17:49:40
阅读次数:
244
按位异或运算可以在不引入临时变量的情况下实现两个变量值得互换。intmain()
{
inta=10;
intb=12;
cout<<"a="<<a<<";"<<"b="<<b<<endl;
a=a^b;//异或运算
b=a^b;
a=b^a;
cout<<"a="<<a<<";"<<"b="<<b<..
分类:
其他好文 时间:
2014-09-10 02:56:41
阅读次数:
186
按位异或运算符,通常称为XOR运算符,遵守以下规则:对于两个运算数的相应位,如果任何一个位是1,但不是两者全为1,那么结果的对应位将是1;否则是0。该运算符的真值表:b1 b2 b1 ^ b2-------------------------0 0 00 1 11 0 11 1 0如果把w1和w2分...
分类:
其他好文 时间:
2014-09-09 23:02:09
阅读次数:
309
1 具体是先把十进制的数先转换成二进制的原码, 按位取反最后一位加一,然后“按权展开”,得到十进制的结果, 如果第一位是1(指转换成二进制的原码中的第一位),说明故是负数所以要在结果前面加上负号-。 例子: int x=20; printf("%d\n",~x); 结果是 -21 求解过程:x=.....
分类:
编程语言 时间:
2014-09-09 18:15:09
阅读次数:
266