当前位置:网站首页>C语言之位操作和整形的补位
C语言之位操作和整形的补位
2022-07-21 17:51:00 【fksfdh】
位操作:
左移(<<)和右移(>>)
计算规则:
1、整数是以补码形式存储。
2、数据类型转换
小数据赋给大数据,系统为保证数据完整性,采用符号扩充行为,
大数据赋给小数据,会发生截断行为,有可能造成数据丢失。
下面显示的二进制数据也是补码。
3、整数运算时低于4字节的整数类型,是以四个字节运算的。
eg:
void Demo() {
char i;
char j;
j = 93 << 1;
printf("左移:%x\n", j);
j = j >> 1;
printf("右移:%x\n", j);
i = 93 << 1 >> 1;
printf("先左移后右移%x", i);
}
原因:
对于有符号数:左移的时候右侧补0;右移的时候左侧补符号位(正数符号位为0,则补0;负数符号位为1,则补1).
对于无符号数:左移的时候右侧补0;右移的时候左侧也是补0.
93:01011101
左移:10111010
右移:11011101
先左移后右移:01011101
注意:通过前面说的三条规则,就可以看出在内存中是如何计算的。
边栏推荐
- Hebei special access to this C language program first day to find all primes in 1-100
- Tool classes encapsulated based on redistemplate
- 创建新节点的点击事件
- 推荐系统-协同过滤在Spark中的实现
- 接口文档进化图鉴,有些古早接口文档工具,你可能都没用过
- LeetCode83 && LeetCode82: 删除排序链表中的重复元素
- 文献学习(part98)--Pseudo-supervised Deep Subspace Clustering
- Collection集合框架
- CAN通信协议(一)
- QT配置OpenCV(二):成功
猜你喜欢
解决按钮UIButton重复点击问题
包装类(类型之间的相互转化)
Failed to push the solo article to the community side
Implementation of recommendation system collaborative filtering in spark
流
go-zero微服务实战系列(三、API定义和表结构设计)
SerializationException: Could not read JSON: Unrecognized token “xxx“
数千万数据量:2000-2019全中国省、市、县企业注册数据经纬度、注册数目等多指标信息
携程 Spark 多租户查询服务演进,Apache Kyuubi 未来可期
Tencent game: how to build cloud native data warehouse based on starrocks
随机推荐
cocoapod安装问题
推荐系统-协同过滤在Spark中的实现
浏览器类型判断
Single cell paper record (Part5) -- a joint model of unpaired data from scrna SEQ and st for impating missing gene
Advertisements inserted in solo articles are not displayed
2021-07-09
Configure opencv in QT
Analysis of copyonwritearraylist
服务器内存故障预测居然可以这样做!
String STR = new string ("ABC") how many variables are created?
Documentation (part108) -- distributive robot and multi objective nonnegative matrix factorization
队列(堆栈)
空转工具推荐 | 10款空间转录组去卷积工具的综合比较
Leetcode342:4 power
LeetCode·1720:解码异或后的数组
1989-2020年学历结构和计算平均受教育年限数据
ettercap详细使用教程
携程 Spark 多租户查询服务演进,Apache Kyuubi 未来可期
LeetCode83 && LeetCode82: 删除排序链表中的重复元素
编辑器公式