算法前置基础知识(部分)

时间:2021-08-25
本文章向大家介绍算法前置基础知识(部分),主要包括算法前置基础知识(部分)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

【前置小知识点】

关系运算符优先级大于符号运算符!

& 按位与操作,按二进制位进行"与"运算。运算规则:(有 0 则为 0)

0&0=0;   
0&1=0;    
1&0=0;     
1&1=1;

| (or)按位或运算符,按二进制位进行""运算。运算规则:(有 1 则为 1)

0|0=0;   
0|1=1;   
1|0=1;    
1|1=1;

XOR,异或运算符。运算规则:(不同为1,同为0)

0^0=0;
0^1=1;
1^0=1;
1^1=0;

>>右移运算符 n/2

<<左移运算符 n*2

取到某个数的二进制最低位 result=n&(-n);

取到某个数的二进制最高位:

//关系运算符优先级大于符号运算符!所以必须要有括号
n|=(n>>1);    //前2位变为1
n|=(n>>2);    //前4位变为1
n|=(n>>4);    //前8位变为1
n|=(n>>8);    //前16位变为1
n|=(n>>16);    //前32位变为1
n|=(n>>32);    //前64位变为1
//超过int最大位数,足够大,能够保证所有位都变为1.
n^=(n>>1);    //右移一位异或后n取到最高位的大小
//n即为所求
//例:
//1001
// 100    1101
//1101
//  11    1111
//1111
//.....
//1111
// 111    1000
//异或后求出1000

保留任意位小数输出

#include<iomanip>        //需要头文件
cout<<fixed<<setprecision(n)<<number<<endl;  //n为保留小数位数

后续待添加.....

原文地址:https://www.cnblogs.com/Secret-Garden/p/15183978.html