<<、>>和>>>
1.左移操作符(<<):
左移操作符将数字的二进制表示向左移动指定的位数。右侧空出的位用0填充。左移操作相当于乘以2的幂。
例如:
int num = 4; // 二进制表示为 0100
int shifted = num << 1; // 结果为 8,二进制表示为 1000
2.带符号右移操作符(>>):
带符号右移操作符将数字的二进制表示向右移动指定的位数。左侧空出的位用符号位(正数为0,负数为1)填充。右移操作相当于除以2的幂(向下取整)。
例如:
int num = 8; // 二进制表示为 1000
int shifted = num >> 1; // 结果为 4,二进制表示为 0100
- 无符号右移操作符(>>>):
无符号右移操作符与带符号右移操作符类似,但它总是用0来填充左侧空出的位,无论原数的符号是什么。
例如:
int num = -8; // 二进制表示为 1111 1000(补码表示)
int shifted = num >>> 1; // 结果为 2147483644,二进制表示为 0111 1100 0000 0000 ... 0000
在这个例子中,我们将-8(在二进制补码表示中为1111 1000)无符号右移1位,得到2147483644(在二进制中表示为0111 1100 0000 0000 … 0000)。
注意:对于负数,其二进制表示通常使用补码形式。在补码表示中,最高位(符号位)为1表示负数,为0表示正数或零。右移时,带符号右移会保持符号位不变,而无符号右移则总是用0填充。
原码、反码和补码都是计算机中对数字的二进制定点表示方法,常用于处理整数的存储和运算。
另:
原码是一种直观的二进制表示法,其中最高位为符号位,用来表示数字的正负,其余位表示数值的大小。符号位为0表示正数,为1表示负数。例如,8位二进制数中,+1的原码为0000 0001,-1的原码为1000 0001。
反码主要用于系统环境设置,如Linux平台的目录和文件的默认权限设置。正数的反码与原码相同,而负数的反码是在其原码的基础上,符号位不变,其余各位取反。例如,-1的原码为1000 0001,其反码则为1111 1110。
补码则是一种用于计算机中二进制数运算的数字表示法,特别是用于简化加减法运算。正数的补码与其原码相同,而负数的补码是在其反码的基础上加1。补码的一个重要特性是对于任意一个整数n,它的补码与-n的补码相同。这使得计算机能够使用相同的加法器进行正数和负数的加法运算,从而简化了运算逻辑。
相关文章:
<<、>>和>>>
1.左移操作符(<<): 左移操作符将数字的二进制表示向左移动指定的位数。右侧空出的位用0填充。左移操作相当于乘以2的幂。 例如: int num 4; // 二进制表示为 0100 int shifted num << 1; // 结果为 8,二进制表示为 10002.带…...
【C++进阶】RAII思想&智能指针
智能指针 一,为什么要用智能指针(内存泄漏问题)内存泄漏 二,智能指针的原理2.1 RAII思想2.2 C智能指针发展历史 三,更靠谱的shared_ptr3.1 引用计数3.2 循环引用3.3 定制删除器 四,总结 上一节我们在讲抛异…...
探索量子计算:打开未来技术的大门
在科技领域,每一次技术革命都能开启新的可能性,推动人类社会进入一个新的时代。当前,量子计算作为一种前沿技术,正引领着下一轮科技革命的浪潮。本文将深入探索量子计算的奥秘,解析其工作原理,并通过一个简…...
C++11 设计模式2. 简单工厂模式
简单工厂(Simple Factory)模式 我们从实际例子出发,来看在什么情况下,应用简单工厂模式。 还是以一个游戏举例 //策划:亡灵类怪物,元素类怪物,机械类怪物:都有生命值࿰…...
RabbitMQ-死信队列常见用法
目录 一、什么是死信 二、什么是死信队列 编辑 三、第一种情景:消息被拒绝时 四、第二种场景:. 消费者发生异常,超过重试次数 。 其实spring框架调用的就是 basicNack 五、第三种场景: 消息的Expiration 过期时长或队列TTL…...
2024/4/14周报
文章目录 摘要Abstract文献阅读题目创新点CROSSFORMER架构跨尺度嵌入层(CEL)CROSSFORMER BLOCK长短距离注意(LSDA)动态位置偏置(DPB) 实验 深度学习CrossFormer背景维度分段嵌入(DSW)…...
MySQL 社区版 安装总结
很早就安装过MySQL,没有遇到过什么问题,直接next就行了,这次在新电脑上安装却遇到了一些问题,记录一下。 安装的是MySQL社区版,下载地址是www.mysql.com,进入后选择DOWNLOAD页面,选择MySQL Com…...
二叉排序树的增删改查(java版)
文章目录 1. 基本节点2. 二叉排序树2.1 增加节点2.2 查找(就是遍历)就一起写了吧2.3 广度优先遍历2.4 删除(这个有点意思)2.5 测试样例 最后的删除,目前我测试的是正确的 1. 基本节点 TreeNode: class TreeNode{pri…...
linux下coredump问题的定位分析方法
(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 参考:https://blog.csdn.net/m0_73698480/article/details/130077852 最近定位了一段时间linux下的崩溃问题,又收集了一些思路,特整理记录一下。 常见coredump定位方法是:…...
第十届蓝桥杯省赛真题(C/C++大学B组)
目录 试题 A: 组队 试题 B: 年号字串 试题 C: 数列求值 试题 D: 数的分解 试题 E: 迷宫 试题 F: 特别数的和 试题 G:完全二叉树的权值 试题 H:等差数列 试题 I:后缀表达式(不一定对) 试题 J:灵能…...
Scrapy 爬取m3u8视频
Scrapy 爬取m3u8视频 【一】效果展示 爬取ts文件样式 合成的MP4文件 【二】分析m3u8文件路径 视频地址:[在线播放我独自升级 第03集 - 高清资源](https://www.physkan.com/ph/175552-8-3.html) 【1】找到m3u8文件 这里任务目标很明确 就是找m3u8文件 打开浏览器…...
LVGL简单记录
1、 vs中代码旁边有个小锁删除git 2、Visual Studio 试图编译已删除的文件, 如果这个文件也是你不再需要编译的文件,且已经从文件系统中删除,你需要从 .vcxproj 文件中移除或者注释掉这一行,以停止Visual Studio尝试去编译一个不…...
计算机网络——ARP协议
前言 本博客是博主用于复习计算机网络的博客,如果疏忽出现错误,还望各位指正。 这篇博客是在B站掌芝士zzs这个UP主的视频的总结,讲的非常好。 可以先去看一篇视频,再来参考这篇笔记(或者说直接偷走)。 …...
【C++]C/C++的内存管理
这篇博客将会带着大家解决以下几个问题 1. C/C内存分布 2. C语言中动态内存管理方式 3. C中动态内存管理 4. operator new与operator delete函数 5. new和delete的实现原理 6. 定位new表达式(placement-new) 1. C/C内存分布 我们先来看下面的一段代码和相关问题 int global…...
深入理解计算机网络分层结构
一、 为什么要分层? 计算机网络分层的主要目的是将复杂的网络通信过程分解为多个相互独立的层次,每个层次负责特定的功能。这样做有以下几个好处: 模块化设计:每个层次都有清晰定义的功能和接口,使得网络系统更易于设…...
亚马逊云科技CTO带你学习云计算降本增效秘诀
2023亚马逊云科技一年一度的重磅春晚--Re:invent上有诸多不同话题的主题Keynote,这次小李哥带大家复盘来自亚马逊CTO: Wener博士的主题演讲: 云架构节俭之道1️⃣节俭对于云计算为什么重要? ▶️企业基础设施投入大,利用好降本策略可以减少巨…...
快速上手Vue
目录 概念 创建实例 插值表达式 Vue响应式特性 概念 Vue是一个用于 构建用户界面 的 渐进式 框架 构建用户界面:基于数据渲染出用户看到的页面 渐进式:Vue相关生态:声明式渲染<组件系统<客户端路由<大规模状态管理<构建工具 V…...
java 目录整理
Java知识相关目录主要参考黑马程序员 风清扬老师的视屏,参考链接为 Java_黑马刘意(风清扬)2019最新版_Java入门视频_Java入门_Java编程_Java入门教程_黑马教程_黑马程序员_idea版_哔哩哔哩_bilibili 1、java 基础 java基本认识?java跨平台原理?jdk、jre、jvm的联系? 链接:…...
使用Python的Pillow库进行图像处理书法参赛作品
介绍: 在计算机视觉和图像处理领域,Python是一种强大而流行的编程语言。它提供了许多优秀的库和工具,使得图像处理任务变得轻松和高效。本文将介绍如何使用Python的wxPython和Pillow库来选择JPEG图像文件,并对选中的图像进行调整和…...
docker 容器指定utf-8编码
在运行 Docker 容器的时候,如果容器内应用需要使用 UTF-8 编码来正常处理中文,你可以通过设置环境变量来指定编码。 可以使用 -e 或者 --env 标志来设置环境变量。比如,设置 LANG 和 LC_ALL 环境变量为 C.UTF-8 或者 en_US.UTF-8:…...
Jellyfin智能片头检测解决方案:Intro Skipper插件技术指南
Jellyfin智能片头检测解决方案:Intro Skipper插件技术指南 【免费下载链接】intro-skipper Fingerprint audio to automatically detect and skip intro sequences in Jellyfin 项目地址: https://gitcode.com/gh_mirrors/in/intro-skipper Intro Skipper是一…...
4 生成器模式
生成器模式 的核心是:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。简单说:像搭积木一样,用相同的步骤可以搭出不同样式的房子。建造房子的步骤是固定的:打地基建墙体安装屋顶装修内部但…...
BookGet:一键下载全球50+图书馆古籍资源的智能工具指南
BookGet:一键下载全球50图书馆古籍资源的智能工具指南 【免费下载链接】bookget bookget 数字古籍图书下载工具。 项目地址: https://gitcode.com/gh_mirrors/bo/bookget 你是否曾为查找古籍资料而奔波于各大数字图书馆?是否因为复杂的下载流程而…...
2026年图片换背景免费工具完全指南:一键抠图软件推荐
现在是5月,我想很多人都在为各种证件照、商品图、头像等需要换背景的图片犯愁。前两天有朋友问我"哪个软件可以给图片换背景",我才意识到很多人还在用古老的PS或者繁琐的在线工具。今天就来给大家分享一下2026年最好用的图片换背景工具&#x…...
【实战篇】Nginx反向代理负载均衡:从轮询到权重的策略演进
1. 反向代理与负载均衡基础认知 第一次接触Nginx的反向代理功能时,我盯着配置文件里的proxy_pass参数看了半天。这行看似简单的配置,背后其实隐藏着现代分布式系统的核心设计思想。想象一下这样的场景:当你在电商网站点击"立即购买"…...
Muse:现代化多仓库管理工具,提升开发效率与协作体验
1. 项目概述:一个面向开发者的现代化代码库管理工具最近在和一些团队交流时,发现一个挺普遍的现象:大家手头的项目代码库越来越多,有的是自己维护的开源项目,有的是公司内部的核心业务模块,还有一堆实验性的…...
告别复杂配置:用MobaXterm+网线直连,5分钟让树莓派SSH并上网(Windows环境)
极简主义者的树莓派连接方案:MobaXterm全流程实战指南 树莓派作为一款功能强大的微型计算机,在嵌入式开发、物联网项目和教育领域广受欢迎。然而对于许多初学者甚至有一定经验的开发者来说,如何快速、稳定地连接树莓派始终是个令人头疼的问题…...
从Softmax到ArcFace:PyTorch实战解析人脸识别中的角度间隔损失函数
1. 从Softmax到ArcFace:人脸识别损失函数的进化之路 人脸识别技术如今已经深入到我们生活的方方面面,从手机解锁到机场安检,背后都离不开一个关键环节——如何让模型学会区分不同的人脸。这就像教小朋友认人一样,我们需要告诉模型…...
开源浏览器扩展SubLens:集中管理AI订阅账单,告别遗忘扣费
1. 项目概述:一个浏览器扩展,帮你管好AI订阅账单 不知道你有没有这种感觉,每个月信用卡账单出来的时候,总有几个“熟悉的陌生人”——那些你为了尝鲜或者工作需要而订阅的AI服务,比如ChatGPT Plus、Claude Pro、GitHub…...
从Claude Code到nanocode:轻量级AI编程助手核心架构与工程实践
1. 项目概述:从Claude Code到nanocode的轻量化之路 如果你是一名开发者,尤其是对AI编程助手(AI Agent)的内部工作原理充满好奇,那么你很可能听说过Anthropic的Claude Code。它是一个功能强大的命令行AI代理࿰…...
