c语言位运算的实例 C语言中的位运算符是怎么取反的?
浏览量:1223
时间:2021-03-18 04:05:14
作者:admin
C语言中的位运算符是怎么取反的?
a为int类型 通常占4个字节
2的原码:0000 0000 0000 0000 0000 0000 0000 0010
取反: 1111 1111 1111 1111 1111 1111 1111 1101
最高位是1所以是负数,求其原始数据,方法是
再次取反加1(符号位不变)
取反: 1000 0000 0000 0000 0000 0000 0000 0010
加1 1000 0000 0000 0000 0000 0000 0000 0011
所以是 -3
c语言中的位运算符中‘按位取反’是怎么运算的?
使用~按位取反运算的时候,计算机会将操作数所对应的二进制表达式的每一个位进行取反计算,取反后所得到的值就是~按位取反的运算结果。例如,假如计算机是32位的,接下来要计算~5的值,计算过程如下:5的二进制表达式为:00000000000000000000000000000101执行~运算,即~5后:11111111111111111111111111111010,即结果为-6以上过程没有任何问题,但如果忘记了负数的二进制表达方式,那么就会对这个结果产生疑问,为什么11111111111111111111111111111010表示-6,可能会以为它应该表示-10等等,所以,使用~按位取反的另一个关键就是理解11111111111111111111111111111010为什么表示-6,也即理解负数的二进制表达方式。扩展资料js取整~是按位取反运算,~~是取反两次在这里~~的作用是去掉小数部分因为位运算的操作值要求是整数,其结果也是整数,所以经过位运算的都会自动变成整数除了~~n还可以用n<<0n>>0n|0
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。