负数的计算机表示和溢出的关系是什么
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,本篇内容介绍了"负数的计算机表示和溢出的关系是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!§
千家信息网最后更新 2025年01月20日负数的计算机表示和溢出的关系是什么
本篇内容介绍了"负数的计算机表示和溢出的关系是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
§ 0x00 数字的计算机表示
上学时,说数字在计算机中是以补码形式表示的。补码的定义是:
正数的补码和原码都与数值一样;
原码是最高位是符号位,其他位是与数据相等的数值;
负数的反码是原码的符号位保持不变,将其他bit翻转,然后反码+1就是补码了。
为什么是这样的?这要从基本数字电路中的加法器说起。
§ 0x01 为什么这样表示?
加法器的基本原理是,按位进行逻辑运算,进位参与高一bit的的逻辑运算。但它不支持减法操作。所以以补码形式存储负数时,就可以解决这个问题。 如下示例: 1byte的4-2,即4+(-2)。
-2: 0b1000 0010(原码),0b1111 1101(反码),0b1111 1110(补码)4: 0b0000 0100 (原码),0b0000 0100(反码),0b0000 0100(补码)
最终的计算过程就是补码和补码的加法。
0b1111 1110+0b0000 0100---------------- 0b0000 0010 =(+2)
最终的符号位因为进位翻转为0,变为正值。
§ 0x02 有符号数的溢出
有符号数short类型的宽度为16bit。它的范围为-32768~32767。为什么最大正值+1后会溢出为-32768呢?
最大的正数的补码用16进制为:0x7fff。 其+1后,其实并没有溢出,而是变为0x8000。进位后最高位为1了,也就是负数了。0x8000为真值是多少呢?
0x8000(补)减1反推出反码:0x7fff按位翻转提到原码:0x8000
那么0x8000的值应该是多少呢?好像是0,最高位是1,表示是负数,其他位都是0,就是-0。-0+1应该是1。实际呢?
0x8001(补)-1反码:0x8000按位翻转:0xffff
0xffff的原码值为-32767。0x8000应该是它-1得到,所以0x8000补码对应的值应该为-32768。
"负数的计算机表示和溢出的关系是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
补码
负数
反码
计算机
最高
加法
就是
数字
符号
最大
内容
加法器
号数
实际
形式
数值
更多
正数
知识
过程
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
linux装软件开发环境
软件开发专科工资一般多少
软件开发培训班哪些
诚创数据库密码
电脑主机能改家用服务器吗
软件开发技术风险
服务器在哪里可以下载游戏
安全服务器的英文简写
个人财务管理系统数据库
梁溪区计算机网络技术推广
全椒县网络安全学费
政府招聘网络安全员
男朋友软件开发违法软件
学软件开发需要的电脑
吉林会员管理软件开发
gis软件开发找工作
不上数据库的期刊查重
池州手机软件开发费用
高宇网络技术公司
程序软件开发定制
1u服务器热
外来人员网络安全检查表
手机登录显示服务器返回出错
网络安全攻防平台 计算
网络安全法重点条款
蚂蚁金服成为数据库公司
数据库oledb字符串
vue如何显示数据库图片
南阳微信公众号网络安全
赤峰短期云计算网络安全培训班