C语言:左移操作符和右移操作符
2021/10/13 23:46:30
本文主要是介绍C语言:左移操作符和右移操作符,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { //左移操作符:将操作数的二进制左相应的位数,后面补0 int a = 8; //左移两位 // a << 2; 这样左移并不能得到改变的数字,应该左移后赋值 // printf("%d", a); int b = a << 2; printf("%d\n", b); //右移操作符:两种 //1.算术右移:前面补原符号位 //2.逻辑右移:前面补0 int c = 10; //右移:>> int d = c >> 2; printf("%d\n", d); //输出2 //10的二进制:00000000000000000000000000001010 //右移两位,10丢弃,前面补0,得到:00000000000000000000000000000010 int n = -1; //数值在内存中以二进制的补码形式存放: //-1原码:10000000000000000000000000000001 //-1反码:11111111111111111111111111111110 //-1补码:11111111111111111111111111111111 int m = n >> 1; //右移1位 //补码右移一位,前面补原符号1,得到的还是-1 printf("%d\n", m); //那问题来了:右移操作,什么时候是算数右移,什么时候是逻辑右移呢? /*规则:1.若是不带符号数,则补入的数全部为0; 2. 若是带符号数,则补入的数全部等于原数的最左端位上的原数(即原符号位)*/
这篇关于C语言:左移操作符和右移操作符的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-29Elasticsearch慢查询日志配置
- 2024-05-29揭秘华为如此多成功项目的产品关键——Charter模板
- 2024-05-29海外IDC业务拓展的7大挑战
- 2024-05-29InLine Chat功能优化对标Github Copilot,CodeGeeX带来更高效、更直观的编程体验!
- 2024-05-29CodeGeeX 智能编程助手 6 项功能升级,在Visual Studio插件市场霸榜2周!
- 2024-05-29AutoMQ 生态集成 Apache Doris
- 2024-05-292024年IDC行业的深度挖掘:机遇、挑战与未来展望
- 2024-05-29五款扩展组件齐发 —— Volcano、Keda、Crane-scheduler 等,邀你体验
- 2024-05-29AutoMQ 对象存储数据高效组织的秘密: Compaction
- 2024-05-29活动预告|来 GIAC 大会听大数据降本利器:AutoMQ 基于云原生重新设计的 Kafka