在c语言中~3+2<<2等于多少?
3个回答
展开全部
~按位取反运算符的优先级最高,先算~3,结果等于-4,因为3的二进制是11,前面都是0位,按位取反,后两位是00,前面都是1,而等式中没有特别指明数据的类型,因此数据被当成int型处理,有符号位,正数符号位为0。负数符号位为1,3按位取反,就等于11111111111111111111111111111100,负数以补码的形式存储在计算机中,3按位取反等于-4在计算机中的二进制补码,因此~3=4,而加法的优先级高于算术左移,因此-4+2=-2,-2左移两位,相当于右边补两个0,或者相当于乘以2的2次方,结果等于-8
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询