有符号数的左移和右移
对于无符号数的左移和右移,因为不涉及到符号位的问题,比较好理解:
左移低位补零,高位舍弃
右移高位补零,低位舍弃对于有符号数的左移和右移,因为符号位的参与,可能各个编译器的实现方式上有差别
我在/home/utils/gcc-5.2.0/bin/g++ 这个g++编译器的版本上试了下:
左移低位补零,高位舍弃(和无符号数的实现相同),这意味着本来一个正数,在移位的过程中,可能一会儿变成负数,一会儿又变回正数,然后再变负数···这种跳跃的情况。
右移高位补符号位,低位舍弃。所以如果一个int类型的-1, 进行右移操作,无论进行多少次,结果仍然为-1,因为-1 = 1111 1111 1111 1111 1111 1111 1111 1111b.
另外,char类型,其实是一个int8_t类型,是一个有符号的8bit整数类型。
参考:C语言中无符号数和有符号数的左移和右移
有符号数的左移和右移相关推荐
- C符号之逻辑运算符 左移与右移 自增自减
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本篇文章 ...
- C学习:无符号有符号数的移位问题分析总结
C学习:无符号有符号数的移位问题分析总结 移位原则 移位分析 参考资料 移位原则 重要重要重要:对于有符号数来说,移位操作在C语言标准中行为未定义,不同平台不一样,取决于编译器类型.无符号数统一按逻辑 ...
- 负数的移位、有符号数的移位转换为无符号数的移位
对于计算机而言,用 32 去乘一个数,并非真的去乘,而是移动二进制的 5 位,显然是十分容易.(对于计算机没有 10 进制的概念,本质上都是 2 进制) 1. 负数移位的等价变换 注意,负数右移不等价 ...
- 分析轮子(二)- ,, (左移、右移、无符号右移)
前言:写 分析轮子(一)-ArrayList.java 的时候看到源码中有 int newCapacity = oldCapacity + (oldCapacity >> 1); 这样的代 ...
- 2018-1-20:左移和右移运算以及和(无符号右移)的区别以及位运算的小题目...
首先:左移和右移以及无符号右移都是应用于2的次幂运算 左移几位就相当于该数据乘以2的几次方:即完成2的次幂运算 右移几位就相当于该数据除以2的几次方:即完成2的次幂运算,右移有个小特点:右移之后空出的 ...
- Java负整数的左移、右移、无符号右移
Java负整数的左移.右移.无符号右移.正数的位移没有涉及到符号,而且正数的原码.反码.补码都是一样的,所以相对简单,但是对于负整数的位移,往往容易混淆. Java的<< >> ...
- C语言与,或,非,同或,异或,左移,右移及优先级,查表法计算一个十进制数中1的个数
1.与:& 2.或:| 3.非:~ 4.异或:^ 5.同或:~^ 6.左移:(<<) 7.右移:(>>) 注意:位运算符中求反运算"~"优先级最高, ...
- Java基础——左移和右移
首先要明白一点,这里面所有的操作都是针对存储在计算机中中二进制的操作,那么就要知道,正数在计算机中是用二进制表示的,负数在计算机中使用补码表示的. 左移位:<<,有符号的移位操作 左移操作 ...
- 【STM32】位操作、按位与、按位或、按位异或、取反、左移、右移等基础 C 语言知识补充
文章目录 1 位操作 1.1 按位与 1.2 按位或 1.3 按位异或 1.4 取反 1.5 左移 1.6 右移 2 单片机中常用操作 2.1 不改变其他位时,对某几个位设定值 2.2 移位操作提高代 ...
最新文章
- pxe安装linux后命令不可用,CentOS7下的PXE无人值守系统安装(亲测成功)
- linux c 各头文件作用总结
- 8.依赖的传递、排除、冲突
- Linux新手上路命令
- CF 1635E Cars 二分图 + 拓扑
- aws cognito_使用AWS Cognito的用户管理—(1/3)初始设置
- Remon Spekreijse CSerialPort串口类的修正版2014-01-10
- 小米10pro第二个摄像头下面_小米10至尊纪念版、小米10 Pro对比评测:至尊版“至尊”在哪里?...
- linux 7修改主机名重启后不生效_Linux 中改变主机名的 4 种方法 | Linux 中国
- JVM-类加载、GC回收机制
- python图书馆抢座_Python-Requests模拟登录-实现图书馆座位自动预约
- linux 安装萍方字体,苹方字体大全-苹果苹方字体全套打包下载【windows完整免费版】-西西软件下载...
- 破解XP 管理员Administrator密码
- 2021-08-17:资产波动之贝塔系数的比喻
- linux博通网卡驱动怎么安装,ubuntu14.04手动安装博通官方无线网卡驱动时报错,...
- 解决U盘使用DVD镜像安装Fedora15需要联网的问题
- 手搭深度推荐模型(四) NFM
- 机器学习和深度学习相关问题总结
- HTML5之FileReader的使用
- 机器人巨头争霸,谁主沉浮?
热门文章
- 2013年固安房价必然爆跌的4个理由
- error: Store update, insert, or delete statement affected an unexpected number of rows (0). Entities
- S6 在 LAIN 集群中的应用实践
- 红外波长的高性能测量新突破
- 用手机打开word图表位置很乱_超过80%的人学会了都说好用,这是一篇良心干货文...
- 模拟黑洞图像_第一张黑洞图片如何获得?8个望远镜和数百万次模拟
- jq获取当前周从星期一到星期天的日期
- itunes导入音乐到手机_离开iTunes并选择新的音乐播放器
- 难点三!!!Vue绑定class属性时无效
- c语言wchar转化为char_Charwchar | 学步园