方法一:计算掩码位数有两种方法,使用LOG或位运算都可以;使用LOG要注意向上取整和+3,而不是+2,+2计算不对,通不过。换底公式log a(b)=log c(b)/log c(a);C语言只有log以e为底,log10以10为底。
#include
#include
using namespace std;
int GetNum(int x)
{
double y;
y=log10...
分类:
其他好文 时间:
2015-03-11 17:29:36
阅读次数:
137
交换两个变量(a和b)的值,最简单的办法是另定义一个变量(c),将a赋给c,然后调换。下面给出几种不使用第三个变量的办法:1.利用运算交换两个变量值a = b - a;b = b - a;a = b + a;2.位运算通过异或运算来交换值a=a^b; b=a^b; a=a^b;3.交换指针地址
分类:
其他好文 时间:
2015-03-10 18:52:32
阅读次数:
100
直接枚举即可
#include
using namespace std;
int main()
{
int n,i,j;
int a[10001];
char s;
while(cin>>n)
{
for(i=0;in;i++)
cin>>a[i];
for(i=0;i26;i++)...
分类:
其他好文 时间:
2015-03-10 17:29:30
阅读次数:
164
代码如下: 1 #include //将十进制数转化为二进制数,位运算的取位操作 2 using namespace std; 3 int main() 4 { 5 unsigned short i; 6 cout > i; 8 for(in...
分类:
其他好文 时间:
2015-03-09 23:54:43
阅读次数:
261
这个题用位运算就非常简单了,前提是首先熟悉位运算,这里用到一个异或运算,也就是 ^ 这个符号,他的运算规则是:相同为0,不同为1。知道了这个之后,就容易想到相同的两个数异或之后为0,所以下面很关键的一步,也是我想了好久也没想起来的一步,就是把所有的数都异或一遍,那么最后剩下的一定是那个一个的,还有一...
分类:
其他好文 时间:
2015-03-09 22:23:18
阅读次数:
223
利用次数的位运算二进制加速 1 #include 2 #define ll long long 3 4 ll QuickPow(ll a,ll n,ll mod){ 5 ll tmp=a,ans=1; 6 while(n){ 7 if(n&1) ans=ans...
分类:
其他好文 时间:
2015-03-09 22:22:53
阅读次数:
190
1、最小值:(y^(x^y)&-(x
2、最大值:(y^(x^y)&(x...
分类:
其他好文 时间:
2015-03-09 21:01:31
阅读次数:
204
一.移位运算符移位运算符也针对二进制的“位”,它主要包括:左移位运算符(>>)、带符号的右移位运算符(>>)。其中:左移运算符用“>>”表示,是将运算符左边的对象向右移动运算符右边指定的位数,并且在高位补 0,其实右移 n 位,就相当于除上 2 的 n 次方。带符号的右移运算符用符号“>>”表示,是...
分类:
编程语言 时间:
2015-03-09 20:54:07
阅读次数:
166
一.逻辑运算符 逻辑运算符共有三种,即“非”、“和”、“或”,分别用 " ! "、“&&”、“||”表示。其中:非运算(!)表示否定,如:!true等于false、!false等于true、!2等于false、!0等于true。和运算(&&)前后两个条件都为真时,才返回true,否则返回false。...
分类:
编程语言 时间:
2015-03-09 20:48:55
阅读次数:
151
运算符就是在用变量或常量进行运算时,经常需要用到的符号,目前常用的总共有十种:算术运算符、关系运算符、逻辑运算符、位运算符、移位运算符、赋值运算符、三元运算符、逗号运算符、字符串运算符、转型运算符。下面将会对每种运算符结合实例作详细的讲述。一.算术运算符算术运算符总共有 7 种:“+”、“ - ”、...
分类:
编程语言 时间:
2015-03-09 20:42:58
阅读次数:
206