博文
关于计算二进制数有多少个1(2012-01-31 23:11:00)
摘要:摘自 http://www.cnblogs.com/graphics/archive/2010/06/21/1752421.html
方法一: 普通法
int n,counter=0;
scanf("%d",&n);
while(n)
{
if(n&1==1)
counter++;
n>>=1;
}
精简化:
int n,counter;
for(counter=0;n;n>>=1)
{
counter+=n&1;
}
方法二:快速法
int n,counter=0;
while(n)
{
n&=(n-1);
counter++;
}
方法三: 平行法
......
sizeof详解(2012-01-31 21:59:00)
摘要:我对C++的掌握尚未深入,其中不乏错误,欢迎各位指正啊
1. 定义:
sizeof是何方神圣sizeof乃C/C++中的一个操作符(operator)是也,简单的说其作
用就是返回一个对象或者类型所占的内存字节数。
MSDN上的解释为:
The sizeof keyword gives the amount of storage, in bytes, associated with a
variable or a type (including aggregate types).
This keyword returns a value of type size_t.
其返回值类型为size_t,在头文件stddef.h中定义。这是一个依赖于编译系统的值,一
般定义为
typedef unsigned int size_t;
世上编译器林林总总,但作为一个规范,它们都会保证char、signed char和unsigned
char的sizeof值为1,毕竟char是我们编程能用的最小数据类型。
2. 语法:
sizeof有三种语法形式,如下:
1) sizeof( object ); // sizeof( 对象 );
2) sizeof( type_name ); // sizeof( 类型 );
3) sizeof object; // sizeof 对象;
所以,
int ......
半数循环时用减法法代替乘法(2012-01-31 00:25:00)
摘要:做循环的时候,如果条件是
a=0;a<=b/2;a++;
由于加减运算比乘除运算更快,可以取代为
a=0;a<=b-a;a++;......