2016 - 2024

感恩一路有你

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

c语言位运算的实例 位运算的运算规则 位运算符取反怎么运算

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。