为何八位有符号整数的范围是-128~127,而不是-127~128

简介:

八位的带符号的整数,比如JAVA中的byte,c#中的SByte,为什么值域范围都是-128-127而不是-127~128?

事实上,远古时期有些计算机的设计是采用了反码表示有符号数的,因此8位有符号数的范围是-127~127,它的一个缺点是0是有正负。它用一位表示正负数,然对剩余的位数采用取反。

比如,0111 1111表示127,那-127的则是1000 0000。0000 0000表示正的0,而1111 1111则表示成为负0。因此反码作为有符号的整数并未流行。

现在的计算机中,通常将正数的补码来表示其负数,采用补码的好处是在硬件电路的实现上,只要使用一种加法电路就可以处理各种有符号数的加减计算,使得电路设计简单。

而补码计算方式为取反码加1,比如,对于正数0000 0001的一个补码计算,

首先取反码成为1111 1110,然后+1,变成1111 1111。所有-1的表示就是1111 1111

那么问题来了,八位整数中,如果首位表示正数,那么最多就到127,无法128,那么-128是怎么出来的?

如果我们假设1000 0000表示的是128,取反码,得到的是0111 1111,再加1有变成了1000 0000,也就是128的反码就是它本身,128和-128是一个数。由于在计算机中表示有符号数时,通常将最高有效位为0的认为是正数,最高有效位为1的认为是负数,因此1000 0000就表示为-128了。所以8位有符号整数的范围是-128~127。

事实上,还有一个更好理解的方式,-127的表示方式为1000 0001,那么-128=-127-1

即-128=1000 0001-0000 0001=1000 0000















本文转自cnn23711151CTO博客,原文链接: http://blog.51cto.com/cnn237111/1634923,如需转载请自行联系原作者











相关文章
|
Kubernetes 关系型数据库 MySQL
k8s教程(基础篇)-入门及案例
k8s教程(基础篇)-入门及案例
5183 0
|
Rust Shell Linux
CentOS下安装Rust
CentOS下安装Rust
3883 1
|
9月前
|
安全 Linux iOS开发
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
800 53
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
|
人工智能 安全 调度
《鸿蒙NEXT端云垂直整合架构——算力协同调度的智慧引擎》
鸿蒙NEXT通过创新的端云垂直整合架构,实现硬件与云端深度融合,支持高效的算力协同调度。该架构具备智能的算力感知与分配能力,能根据任务需求灵活调配端侧和云端资源,确保实时性和高性能。同时,端云协同的模型训练与优化机制加快了模型迭代,提升了性能。此外,星盾安全架构保障了数据传输和算力调度的安全可靠性。这不仅为用户带来智能、流畅的体验,也为开发者提供了高效开发环境,推动AI技术在鸿蒙生态中的广泛应用。
567 18
|
机器学习/深度学习 算法 数据库
R-CNN论文详解(入门目标检测必读)
R-CNN论文详解(入门目标检测必读)
R-CNN论文详解(入门目标检测必读)
|
机器学习/深度学习 存储 自然语言处理
深度学习之少样本学习
少样本学习(Few-Shot Learning, FSL)是深度学习中的一个重要研究领域,其目标是在只有少量标注样本的情况下,训练出能够很好地泛化到新类别或新任务的模型。
846 2
|
机器学习/深度学习 监控
在进行多任务学习时,确保模型不会过度拟合单一任务而忽视其他任务
多任务学习(MTL)中,为避免模型过度拟合单一任务,可采取任务权重平衡、损失函数设计、正则化、早停法、交叉验证、任务无关特征学习、模型架构选择、数据增强、任务特定组件、梯度归一化、模型集成、任务选择性训练、性能监控、超参数调整、多任务学习策略、领域适应性和模型解释性分析等策略,以提高模型泛化能力和整体表现。
|
Java
Java IO流--转换流InputStreamReader和OutputStreamWriter的使用
Java IO流--转换流InputStreamReader和OutputStreamWriter的使用
413 0
|
机器学习/深度学习 编解码 PyTorch
【YOLOv8改进】HAT(Hybrid Attention Transformer,)混合注意力机制 (论文笔记+引入代码)
YOLO目标检测专栏介绍了YOLO系列的改进方法和实战应用,包括卷积、主干网络、注意力机制和检测头的创新。提出的Hybrid Attention Transformer (HAT)结合通道注意力和窗口自注意力,激活更多像素以提升图像超分辨率效果。通过交叉窗口信息聚合和同任务预训练策略,HAT优化了Transformer在低级视觉任务中的性能。实验显示,HAT在图像超分辨率任务上显著优于现有方法。模型结构包含浅层和深层特征提取以及图像重建阶段。此外,提供了HAT模型的PyTorch实现代码。更多详细配置和任务说明可参考相关链接。

热门文章

最新文章