【C语言】中的位操作符和移位操作符,原码反码补码以及进制之间的转换 |
您所在的位置:网站首页 › 补码转换为原码怎么操作视频 › 【C语言】中的位操作符和移位操作符,原码反码补码以及进制之间的转换 |
欢迎大家来到c语言知识小课堂,今天的知识点是操作符和进制
如上图所说,将所有数字相加即转化的十进制数 十进制转化为二进制假设我们将十进制数120转化为二进制数 二进制----->八进制 1 ---------------> 1 10 --------------> 2 11 --------------> 3 100 ------------> 4 101 ------------> 5 110 ------------> 6 111 ------------> 7 八进制下最大的数字就是7,我们可以用三个二进制数字来表示,也就是说每三个二进制数字就可以表示一个八进制数字 就是将每一位拆开,把每一位数字转化为其对应的二进制数字,最后抄在一起就可以了,即二进制转化为八进制的逆过程 二进制转化为十六进制二进制转化为十六进制与转化为二进制转化为八进制大同小异,我们举的例子还是上面的那个二进制数字 就是将每一位拆开,把每一位数字转化为其对应的四位二进制数字,最后抄在一起就可以了,即二进制转化为十六进制的逆过程 二、原码、反码和补码原码反码和补码是计算机整数的二进制数的表示的三种形式,存储在计算机中的数据是补码 三种表⽰⽅法均有符号位和数值位两部分,2进制序列中,最⾼位的1位是被当做符号位(0表示正,1表示负),剩余的都是数值位。 正整数的原反补码都相等,下面主要来说负整数的原反补码 (特别需要说明的是:原码转化成补码可以先反码再+1,补码转化成原码除了-1后再反码也可以先反码再+1) 1、原码直接将数值按照正负数的形式翻译成二进制 2、反码将原码的符号位不变,其他位依次按位取反 3、补码反码+1 三、操作符 1、位操作符 &按位与操作符按位与操作符用于取两个操作数的按位与结果。 规则:只有当两个对应的二进制位都为1时,结果为1;否则结果为0。 #include int main() { int a = 10; int b = 20; int c = a & b; printf("%d", c); return 0; }
当然&也表示取地址操作符 |按位或操作符按位或操作符用于取两个操作数的按位或结果。 规则:只有当两个对应的二进制位都为0时,结果为0;否则结果为1。 #include int main() { int a = 10; int b = 20; int c = a | b; printf("%d", c); return 0; }
按位异或操作符用于取两个操作数的按位异或结果 规则:只有当两个对应的二进制位不相同时,结果为1;否则结果为0。 #include int main() { int a = 10; int b = 20; int c = a ^ b; printf("%d", c); return 0; }
按位取反操作符用于对操作数的每个二进制位取反,即将1变为0,0变为1 #include int main() { int a = 10; int b = ~a; printf("%d\n", a); printf("%d\n", b); return 0; }
操作数只能为整数 -1;//error是错误的,不管往哪移动,都是不能移动负数位的,左移就用。不存在>>-1等价于 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |