C语言中移位操作符,位操作符详运算规则详解【超详细建议收藏】
目录
- 1.了解原码,反码,补码
- 2.移位(二进制位)操作符
- 2.1 左移操作符
- 3.位(二进制位)操作符:&、|、^、~
1.了解原码,反码,补码
整数的二进制表示方法又三种:原码,反码,补码。
有符号整数的三种表示方法均包含符号位和数值位两部分,二进制序列中,最高位的1位是被当作符号位,其余的都是数值位。
在符号位中,用0表示“正”,用1表示”负“。
科学家们规定:
正整数的原,反,补码都相同。
负整数的三种表示方法各不相同。
补码得到原码也可以使用:取反,+1的操作。
原码:直接将数值按照正负的形式翻译成二进制得到的就是原码。
反码:原码的符号位不变,其他位依次按位取反就是反码。
补码:反码+1就得到补码。
补码得到原码也可以使用:取反,+1的操作。
以下是举例:
对于整型来说:数据存放在内存中其实存放的是补码。
对于整型来说:数据存放在内存中其实存放的是补码。
2.移位(二进制位)操作符
注:移位操作符的操作数只能是整数。
2.1 左移操作符 int a = 6; int b = (a int a = -6; int b = a int a = 6; int b = a 1; printf("%d\n", b); printf("%d\n", a); } int a = -6; int b = a 1; printf("%d\n", b); printf("%d\n", a); } int a = 3; int b = -5; int c = a & b; printf("%d\n", c); return 0; } int a = 3; int b = -5; int c = a | b; printf("%d\n", c); return 0; } int a = 3; int b = -5; int c = a ^ b; printf("%d\n", c); return 0; } int a = 0; int b = ~a; printf("%d\n", b); return 0; }
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

