ada*_*abo 1 c binary bit-manipulation
int n = 1; //Arbitrary value
for ( int i = 0;i < 8;i++ )
{
printf( "%d",n & ( 1 << i ) ? 1 : 0 ); //Ternary
printf( "%d",0 || n & ( 1 << i ) ); //Logical OR
}
Run Code Online (Sandbox Code Playgroud)
在循环中的两个表达式中,哪个是用于打印二进制值的0或1状态的更好选择?(基本上打印二进制字符串表示).
AnT*_*AnT 13
最好的是
(n >> i) & 0x1
Run Code Online (Sandbox Code Playgroud)
它比任何其他通过"布尔"转换的方法更可靠地无分支.
在可能和合理的情况下,更喜欢向右移动,以便您感兴趣的位最终位于正确的位置以形成您需要的结果,从而无需任何额外的步骤.
| 归档时间: |
|
| 查看次数: |
241 次 |
| 最近记录: |