c++面试小算法
2012-10-18 10:37 禾子 阅读(98) 评论(0) 收藏 举报1.在已分配的内存中分配内存
char total[512]={'a','b'}; char* pd1 = new (total) char[2]; //在total地址处开始申请空间 cout<<*pd1<<endl; pd1++; cout<<*pd1<<endl; return 0;
2.测试机器的字节排序
void TestByteOrder() { union { int n; char t; } nt; nt.n=1; char *ptr= (char*)(&nt.n); cout << (int) (*ptr) << " "; for(int i=0;i<4;++i) { cout<<(int)(*ptr)<<""; ptr=ptr+1; } cout<<endl<<(int)nt.t<<endl; }
3.二进制中1的个数
void NumOnesInBinary(int number) { int nCount = 0; int nTemp = number; if(nTemp < 0) nTemp = numeric_limits<int>::max() + nTemp; while(nTemp) { if(nTemp & 1) ++nCount; nTemp = nTemp >> 1; } cout << "method 1: " << nCount << endl; // method2 nCount = 0; nTemp = number; while(nTemp) { ++ nCount; nTemp = nTemp&(nTemp-1); } cout << "method 2: " << nCount << endl; }
浙公网安备 33010602011771号