博文

关于计算二进制数有多少个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++; }
方法三: 平行法

......

阅读全文(1465) | 评论:0

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 ......

阅读全文(923) | 评论:0

半数循环时用减法法代替乘法(2012-01-31 00:25:00)

摘要:做循环的时候,如果条件是
a=0;a<=b/2;a++; 由于加减运算比乘除运算更快,可以取代为
a=0;a<=b-a;a++;......

阅读全文(1116) | 评论:0