标签:table 运算 十进制 部分 快速 位移 左移 log 使用
&运算符
操作数1的位 | 操作数2的位 | &的结果位 |
---|---|---|
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
|运算符
操作数1的位 | 操作数2的位 | &的结果位 |
---|---|---|
1 | 1 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
^运算符
操作数1的位 | 操作数2的位 | ^的结果位 |
---|---|---|
1 | 1 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
~运算符
操作数的位 | ~的结果位 |
---|---|
1 | 0 |
0 | 1 |
原因:
主要用于高度优化的代码,在这些代码中,使用其他数据操作的开销太高了
示例:
int var1, var2 = 10, var3 = 2; var1 = var2 << var3;
向左位移:等于当前的值乘以移动位数再乘以2
var1 = var2 << var3; var1 = var2 * var3 * 2 // var1 = 10 * 2 * 2 = 40
向右位移:等于当前的值除以移动位数再除以2,最后舍去非整数部分
var1 = var2 >> var3; var1 = var2 / (var3 * 2) // var1 = 10 / ( 2 * 2) = 2.5 // 然后小数部分被丢弃var1 = 2 // 向右位移操作的时候非整数部分直接丢弃
标签:table 运算 十进制 部分 快速 位移 左移 log 使用
原文地址:http://www.cnblogs.com/summax/p/6860924.html