
位
harkecho
这个作者很懒,什么都没留下…
展开
-
位运算判断两个数是否异号
首先介绍下负数在计算机中的表示和存储在计算机系统中,数值一律用补码表示和存储。含符号位和数值位,符号位:0表示“正”; 1表示“负”。正数的补码 = 原码负数的补码 = 负数的原码取反(符号位保持不变)+ 1列如比如 -7 补=11111001(八位二进制) :原码:(符号位不变) 10000111反码:(符号位不变) 11111000(符号位不变)加1得补码:11111001为什么要使用补码的形式呢?例如在减法运算中,可以看作是正数和负数的加法操作,使用补码的形式表示数值原创 2020-07-08 06:36:57 · 3693 阅读 · 0 评论 -
按位或与加法的区别
0 | 0 = 0 1 | 1 = 1 0 | 1 = 1 1 | 0 = 10 ^ 0 = 0 1 ^ 1 = 0 0 ^ 1 = 1 1 ^ 0 = 10 & 0 = 0 1 & 1 = 1 0 & 1 = 0 1 & 0 = 00 + 0 =00 1 + 1 =10 0 + 1 =01 1 + 0 =01结论:1位二进制运算的低位就是异或运算的结果,进位就是与运算的结果。而如果加原创 2020-07-08 06:18:54 · 2745 阅读 · 0 评论 -
按位与& 和 模运算 % 的关系
unsigned int MAX = 32; // 2的5次方 unsigned int index = 31; index = (index + 100) % MAX; printf ("index = %d\n", index); // index = 3 index = 31; index = (index + 100) & (MAX - 1); printf ("index = %d\n", index); // ...原创 2020-07-08 05:38:07 · 367 阅读 · 0 评论