二进制表示整数及运算

news2024/12/23 23:44:56

现代计算机存储和处理信息以二值信号表示,二值信号能够很容易地被表示、存储和传输。例如穿孔卡片上有洞或无洞、电压的高低或顺时针、及顺时针或逆时针的磁场。

图 二进制与电压的关系

1 二进制

大多数计算机使用8位作为一个字节,是最小的可寻址的内存单位。一个字节的值域是00000002 ~ 111111112。如果看出十进制整数,它的值域是010~25510。

这两种方式的表示方法都不合适:二进制表示法太冗长,十进制表示法与位模式的互相转换很麻烦。

1.1 十六进制

十六进制(简写为”hex”)使用 ‘0’~‘9’及 ‘A’~‘F’来表示16个可能的值。

十进制

0

3

17

29

162

二进制

0000 0000

0000 0011

0001 0001

0001 1101

1010 0010

十六进制

00

03

11

1d

a2

表 十进制、二进制与十六进制的表示

在大部分开发语言中,以0x或0X开头的数字常量被认为是十六进制的值。

1.2寻址和字节顺序

对于跨越多字节的程序对象,必须建立两个规则:这个对象的地址是什么,以及在内存中如何排列这些字节。

图 一个int类型对象在内存中的存储形式

一个类型为int的变量的大小为4个字节。其地址是0x50。这个变量的四个字节存储在0x50,0x51,0x52,0x53这四个位置中。

1.2.1 大端法与小端法

大端法:按最高有效字节到最低有效字节的顺序存储;

小端法:按最低有效字节到最高有效字节的顺序存储;

大小端法没有优劣之分,不同厂商在选择字节排序顺序时选择了不同的规则。

图 值为0x01234567的int类型大小端法存储方式

1.3 掩码

掩码是一串二进制代码对目标字段进行位与运算,屏蔽当前的输入位。将源码与掩码经过按位运算或逻辑运算得出新的操作数。

例如将ASCII码中的大写字母改作小写字母。A的码值位65(0100 0001),a的码值为97(0110 0001)。将A 转化为小写,只需将A的码值与(0010 000)进行或运算。

2 整数表示

用位来编码整数有两种不同的方式:一种只能表示非负数(无符号数),而另一种能够表示负数、零和正数。

表 整数的数据与算术操作术语。小标w表示数据中的位数

假设有一个整数数据类型有w位,我们将位向量写成\vec{x},表示整个向量,或者写成[xw-1,xw-2,...,x0],表示向量中的每一位。

2.1 无符号与补码的编码

2.1.1 无符号数编码

2.1.2 补码编码

2.2 补码扩展一个数字的位

2.3 补码截断一个数字的位

3 整数运算

3.1 补码的非

3.1.1  -x = ~x + 1

这个规律在计算十六进制是哪个数的补码时非常有帮助,比如计算0xab是哪个数的补码。

X = [1010 1011]  ~X = [0101 0100]

-X = ~X + 1 = [0101 0100] + 1 = [0101 0101]= 85

所以 0xab 是 -85的补码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/706553.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【vue】vue高性能虚拟滚动列表【vue2和vue3版组件封装】

项目场景: 当前页显示10w多条数据,不做分页的情况进行渲染。加载和渲染页面会非常慢,滚动也非常卡顿 解决方案: 之渲染可视窗口的列表,其他列表不进行渲染。通过修改偏移量高度进行滚动列表。 vue2版本 virtualLi…

k8s安装环境准备:Virtualbox安装CentOS;复制多个CentOS虚拟机

1.安装virtualbox 下载virtualbox https://www.virtualbox.org/wiki/Downloads 安装(windows) 双击VirtualBox-7.0.8-156879-Win.exe 选择安装目录 安装完成后,打开virtualbox 2.下载CentOS 下载CentOS-7-x86_64-DVD-2009.iso http://isoredi…

做项目去实习到底做的什么?

300万字!全网最全大数据学习面试社区等你来! 今天是手机编辑的文章,说说做项目/实习这回事。 我之前发过一些视频,讲校招四要素的,其中一个很重要的部分就是实习。 对社招同学来说,就简单了,面试…

解决磁盘占用率过高100%问题

方法一:关闭程序 首先打开任务管理器,单击磁盘占用率一栏进行排序,查看占用磁盘最高的应用。若占用率最高的始终是同一个三方程序,可尝试卸载。 注:开机时由于频繁读写磁盘,磁盘占用率会很高,等…

vue内嵌原生前端三件套(html+CSS+JavaScript)

问题 vue内嵌原生前端三件套(htmlCSSJavaScript),运行后前端页面无响应 详细问题 笔者使用vue框架进行开发, 对于可视化大屏采用echarts实现,但是网上所提供的echarts可视化大屏模板多采用原生前端三件套&#xff0…

13 GDI绘图技术

文章目录 GDI技术GDI 对象画笔对象画刷对象位图对像创建一个位图字体对象 区域对象区域组合 GDI技术 GDI(graphics Device Interface):图形设备接口,用于绘图。 In Windows CE, as in Windows-based desktop platforms, the graphics device interface (GDI) contr…

EasyExcel 的简单使用(读取写入)

文章目录 前言一、创建项目二、核心代码2.1 org.feng.bean包中的类2.1.1 Sex类2.1.2 User类 2.2 org.feng.constant包中的类2.2.1 Constant类 2.3 org.feng.converter包中的类2.3.1 ListDataConverter类2.3.2 SexConverter类 2.4 org.feng.listener包中的类2.4.1 UserReadListe…

android用java生成crc校验位

在串口通信中,经常会用到后两位生成crc校验位的情况。 下面是校验位生成方法: public static String getCRC(String data) {data data.replace(" ", "");int len data.length();if (!(len % 2 0)) {return "0000";}in…

Springboot集成mybatisplus的问题处理

文章目录 前言一个接口多个实现解决方案 Invalid bound statement (not found)解决方案 总结 前言 新接触mybatisPlus的小伙伴可能会遇到各种各样的问题,尤其是mybatis的xml文件及类的注入问题,下面我们就看一下常见的问题吧。 一个接口多个实现 报错…

python numpy 多维数据广播

广播规则:从最右侧开始广播。 Broadcasting — NumPy v1.25 Manual 截图 下面给出一些样例: 三维矩阵广播 a np.array([[[0,0],[0,0]],[[0, 0],[0, 0]]])print(-*10, a, -*10) print(a.shape) print(a)b np.array([[[1]],[[2]]]) print(-*10, b, -*…

AIGC 3D引擎-LayaAir3.0正式版发布了

2016年6月30日,LayaAir引擎1.0正式版首次发布,今天迎来了它的7周岁生日。 7年,3个大版本,代表着引擎不同阶段、不同的时代、不同的定位。 2016年6月的第1代引擎版本定位是极致性能,支持2D与3D游戏开发, 满足…

【C/C++实现进程间通信 三】管道通信机制

文章目录 前情回顾思路源码Publisher.cppSubscriber.cpp 效果 前情回顾 上一期已经讲解过了进程的相关概念以及进程间通信的实现原理,下面仅展示管道通信机制实现进程间通信的相关代码。 思路 /*本项目主要用于以管道通信的方式进行进程间通信的测试。1.主要包含…

Java面试Day17

1.什么是 Java 内部类? 内部类的分类有哪些 ?内部类有哪些优点和应用场景? 顾名思义,内部类是指定义在某一个类中的类,主要分为成员内部类,静态内部类,局部内部类和匿名内部类四种。 创建与获取…

(五)python实战——使用sqlalchemy完成Sqlite3数据库表的增、删、查、改操作案例

前言 本节内容我们使用sqlalchemy框架完成Sqlite3数据库表的增删查改等常规操作,相较于原生Sqlite的数据库操作,sqlalchemy通过ORM映射完成实体对象的映射,通过映射关系完成对象和数据的转换,完成数据的操作。 正文 ①在项目中…

基于Tars高并发IM系统的设计与实现-基础篇

基于Tars高并发IM系统的设计与实现–基础篇 作者简介 兰怀玉 毕业于中央民族大学计算机专业 先后供职国内外多家公司软件研发设计岗位,有丰富的软件研发经验。 从事IM领域设计研发十余年,先后领衔多个IM通讯系统设计与研发发,拥有丰富的IM系…

算法:哲学家就餐问题

问题描述 由Dijkstra提出并解决的哲学家就餐问题是典型的同步问题。该问题描述的是五个哲学家共用一张圆桌,分别坐在周围的五张椅子上,在圆桌上有五个碗和五只筷子,他们的生活方式是交替的进行思考和进餐。平时,一个哲学家进行思考…

大语言模型微调和PEFT高效微调

目录标题 1 解释说明1.1 预训练阶段1.2 微调阶段2 几种微调算法2.1 在线微调2.2 高效微调2.2.1 RLHF2.2.2 LoRA2.2.3 Prefix Tuning2.2.4 Prompt Tuning2.2.5 P-Tuning v21 解释说明 预训练语言模型的成功,证明了我们可以从海量的无标注文本中学到潜在的语义信息,而无需为每一…

信号链噪声分析11

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 提示:这里可以添加技术概要 如今的射频(RF)系统变得越来越复杂。高度的复杂性要求所有系统指标(例如严格的 链接和噪声预算)达到最佳性能。确保整个信号链的正确设计至关重要。而信…

深入乳腺癌谜团:无监督学习与R语言的勘探之旅

一、引言 乳腺癌作为全球常见的恶性肿瘤,给患者和医学界带来了巨大的挑战。据世界卫生组织的数据显示,乳腺癌是妇女中最常见的癌症之一,并且是全球癌症相关死亡的主要原因之一[1]。因此,研究乳腺癌,并努力提高其早期检…

1085会议桌牌

机种名 蓝牙会议桌牌 型号 PE1085R_D_BLE 外观尺寸 280x58x129.9mm 可视区域 258.7690.68mm 外观颜色 银色 工作电源 3.7V锂电池供电,Type C充电口 显示技术 E-INK电子纸,双屏 像素 1360x480 像素颜色 黑/白/红 视角 约180 适用温度 …