首页 > 其他分享 >初阶《操作符详解》 3. 移位操作符

初阶《操作符详解》 3. 移位操作符

时间:2024-06-23 16:58:28浏览次数:3  
标签:11111111 初阶 反码 00000000 补码 -- 详解 操作符 原码

3. 移位操作符

<<  左移操作符
>>  右移操作符

:移动的是二进制位,移位操作符的操作数只能是整数。

一个存储的二进制码分原码、反码、补码

1.十进制数据的二进制表现形式就是原码,原码最左边的一个数字就是符号位0为正,1为负。
2.正的整数的原码、反码、补码相同
3.负的整数的原码、反码、补码是要计算的

//7(4个字节,32个比特位)
//00000000 00000000 00000000 00000000 00000111-->原码
//00000000 00000000 00000000 00000000 00000111-->反码
//00000000 00000000 00000000 00000000 00000111-->补码

//-7
//10000000 00000000 00000000 00000000 00000111-->原码
//11111111 11111111 11111111 11111111 11111000-->反码(原码的符号位不变,其他位按位取反就是反码)
//11111111 11111111 11111111 11111111 11111001-->补码(反码+1就是补码)

3.1 左移操作符

移位规则:

左边抛弃、右边补0

在这里插入图片描述

#include <stdio.h>
int main()
{
	int a = 7;
	int b = a << 1;
	printf("%d\n", b);
	return 0;
}

在这里插入图片描述

3.2 右移操作符

移位规则(右移运算分两种):

  1. 逻辑移位
    左边用0填充,右边丢弃
  2. 算术移位
    左边用原该值的符号位填充,右边丢弃

在这里插入图片描述
警告

int num = 10;
num>>-1;//error

对于移位运算符,不要移动负数位,这个是标准未定义的

标签:11111111,初阶,反码,00000000,补码,--,详解,操作符,原码
From: https://blog.csdn.net/2301_80359017/article/details/139872869

相关文章

  • JUC锁: 锁核心类AQS详解
    AbstractQueuedSynchronizer抽象类是核心,需要重点掌握。它提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架。@立刀旁目录#带着BAT大厂的面试问题去理解#AbstractQueuedSynchronizer简介#AQS核心思想#AQS对资源的共享方式#AQS底层使用了模......
  • 数据库系统概论(超详解!!!) 第十四节 数据库并发控制机制
    多用户数据库系统:允许多个用户同时使用的数据库系统例:飞机定票数据库系统银行数据库系统特点:在同一时刻并发运行的事务数可达数百上千个多事务执行方式:(1)事务串行执行每个时刻只有一个事务运行,其他事务必须等到这个事务结束以后方能运行。不能充分利用系统资源,发挥数据库......
  • Android 事件分发机制详解(下)
    2.3View事件分发机制从上面ViewGroup事件分发机制知道,View事件分发机制从dispatchTouchEvent()开始源码分析/***源码分析:View.dispatchTouchEvent()*/publicbooleandispatchTouchEvent(MotionEventevent){if((mViewFlags&ENABLED_MASK)......
  • JavaSE 面向对象程序设计进阶 继承和方法重写 2024理论与内存详解
    继承面向对象三大特征:封装继承多态封装:对象代表什么,就封装对应的数据,并提供数据对应的行为,把零散的数据变成一个整体为什么要继承两个类中重复的代码(数据和方法)太多,所以要继承extend关键字类与类之间的父子关系让一个类和另一个类建立起继承关系publicclassStude......
  • 【数据结构与算法】图论 详解
    何为完全图、稀疏图、稠密图。完全图:完全图是一种简单的无向图,其中每对不同的顶点之间都恰好有一条边。对于有n个顶点的完全图,它包含n(n-1)/2条边。在有向图中,如果任意两个顶点之间都存在方向相反的两条边,包含n(n-1)条边,则该图被称为有向完全图。稀疏图:稀疏图是边数相......
  • 【数据结构与算法】图的存储(邻接矩阵,邻接表)详解
    图的邻接矩阵数据结构typedefenum{NDG,DG,NDN,DN}GraphKind;usingVRType=int;usingInfoType=int;typedefstructArcCell{ VRTypeadj; InfoType*info;}Arc[N][N];structMGraph{ ElemTypevexs[N]; Arcarc; intvexnum,arcnum; GraphKi......
  • Transformer细节(六)——详解Transformer各层结构和组成
    Transformer模型的架构是由多个编码器(Encoder)和解码器(Decoder)层堆叠而成的。一、编码器(Encoder)        编码器由多个相同的编码器层(EncoderLayer)堆叠而成。每个编码器层包含两个主要子层:自注意力(Self-Attention)子层和前馈神经网络(FeedForwardNeuralNetwork,FFN)子......
  • 学懂C#编程:常用高级技术——委托(Delegate)应用场景——委托与Lambda表达式的结合使用详
            在C#中,委托与Lambda表达式的结合使用是现代编程实践中的一个重要且强大的特性,它极大地提高了代码的简洁性和可读性。下面将详细讲解这两个概念如何协同工作,以及如何在实际编程中有效利用它们。委托基础        委托是C#中的一种引用类型,它允许封装一......
  • Java数据类型详解
    Java作为一种静态类型语言,在编译时就需要确定变量的数据类型。Java的数据类型可以分为两大类:基本数据类型和引用数据类型。本文将详细介绍这些数据类型,并通过代码示例展示如何使用它们。一、基本数据类型Java中的基本数据类型包括四类八种:整数类型、浮点数类型、字符类型......
  • Transformer细节(五)——详解Transformer解码器的自注意力层和编码器-解码器注意力层数
    一、自注意力层(Self-AttentionLayer)并行处理目标序列        自注意力层的任务是计算输入序列中每个位置之间的关系,并生成每个位置的表示。这一过程可以并行处理,因为它并不依赖于前一个位置的计算结果。自注意力机制的具体步骤1.输入嵌入与位置编码      ......