壹 2.2 整数表示
文章目录
- 整型数据类型
- 无符号数的编码
- 补码
- unsigned 和signed之间的转换
- 补码转无符号数
- 无符号转补码
- 无符号数和有符号数
- 扩展位
- 无符号的零扩展
- 补码数的符号扩展
- 截断数字
整型数据类型
define:有限范围的整数
特点:负数和正的范围是不对称的
取值范围:[0,2^(w-1)]
java只支持有符1号数,c,c++支持无符号和有符号
无符号数的编码
原理:无符号数的编码具有唯一性
无符号的二进制数的重要属性:每个介于0~2^w-1的每个数都有一个w位的编码
利用位级运算进行推导。
补码
原理:补码具有唯一性
将字的最高位Xw-1解释为负权,也称为符号位,权重为:-2^w-1。
符号位是1,表示负数。是0,表示非负。
取值范围是**[-2(w-1),2(w-1)-1]**
为什么补码和unsigned取值范围不对称?
补码:|Tmin|=|Tmax|+1,也就是说,Tmax没有对应的负数。
1.一半的位模式表示负数,另一半表示非负数。0为非负数,所以比负表示的范围少一个。
2.最大的无符号数值刚好比补码最大值两倍大一。
Umax=2^w -1,Tmax=2^(w-1)-1,所以在补码中,所有负数在无符号中都是正数。
-1和Umax有相同的位表示,全一的串。数值0全为0。
所以现在总结一下三种公式:
原码:
反码:
补码:
unsigned 和signed之间的转换
规律:相同的字长的有符号数和无符号数之间相互转换的规则是,数值可能改变,但是位模式不变。
补码转无符号数
给定位模式的补码和无符号数之间的关系可以表示为函数T2U的一个属性
对满足x∈[Tmin,Tmax]有
T2Uw(x)={x+2wx<0xx>=0T2Uw(x)= \begin{cases} x+2^w& \text{x<0}\\ x& \text{x>=0} \end{cases}T2Uw(x)={x+2wxx<0x>=0
无符号转补码
对满足u属于[0,UMaxw]
U2Tw(x)={uU<=TMaxwu−2wU>TMaxwU2Tw(x)= \begin{cases} u& \text{U<=TMaxw}\\ u-2^w& \text{U>TMaxw} \end{cases}U2Tw(x)={uu−2wU<=TMaxwU>TMaxw
无符号数和有符号数
几乎所有机器用补码。
在c语言同时包含有符号数和无符号数时,假设两个数都是非负的。计算机出现了奇特的行为:
计算机先隐式得将有符号转换为无符号,利用上式的公式。
所以有了下列的判断:
-1<0判断为true 也就是1
**#define INT_MIN (-INT_MAX -1)**注意此种特殊的表示
扩展位
无符号的零扩展
只需要在开头添加0
补码数的符号扩展
核心在于:变量的符号位
这个有个原则就是,有符号数扩展符号位,也就是1,无符号数扩展0。
截断数字
无符号数截断时,截断后数仍为无符号
有符号数截断时,自动把截断后的数转换为无符号
壹 2.2 整数表示相关推荐
- 从壹开始微服务 [ DDD ] 之一 ║ D3模式设计初探 与 我的计划书
缘起 哈喽大家周四好!又是开心的一天,时间过的真快,我们的 <从壹开始 .net core 2.1 + vue 2.5 >前后端分离系列共 34 篇已经完结了,当然以后肯定还会有更新和修改 ...
- 时隔一个月,社区团购平台“邻邻壹”再获千万美金 Pre-A 轮融资
10月26日消息,社区团购平台"邻邻壹"完成千万美金 Pre-A 轮融资,由源码资本和高榕资本联合领投,红杉资本中国基金跟投.今年8月底,邻邻壹刚刚完成红杉资本中国基金的数千万元种 ...
- vectorvn1610报价_德国Vector测试软件VN1610A-上海壹侨特价
PILZ 751104 继电器 MULTI-CONTACT 18.8005 母针 ASKUBAL KI10-D-M10X1.25 PILUCY PE-203 定量阀 MONTECH REMOVAL M ...
- 找工作壹個月以来的感受
2019独角兽企业重金招聘Python工程师标准>>> 其实开始写这篇文章时是2012年03月28日,但是直到今天我才算是把它写完发出来,距离上次发文章已经206天了.在经过前段时间 ...
- 中关村壹号官兰兰:连接AI企业和传统企业,打造硬科技服务联盟 | MEET2020
鱼羊 整理自 MEET2020 量子位 报道 | 公众号 QbitAI 在AI领域,有奋勇向前的创造者,也有站在第三方视角的行业观察者.宣传队.播种机. AI创业,技术与眼光并重,却也少不了外界的服务 ...
- 信息存储 整数表示 原码 反码 补码 无符号数 有符号数 转换 扩展 截断
虚拟内存,地址,虚拟地址空间 程序对象:程序数据.指令和控制信息 16进制 字数据大小 字长 寻址和字节顺序 最小的地址 小端法和大端法 字符串表示 ascii unicode 代码表示 布尔代数 c ...
- JAVA 总结(壹)
Java总结(壹) 第一章 认识Java (1)Java发展史 (2)Java语言特点:简洁有效:可移植性:面对对象:解释型:适合分布式计算:拥有较好的性能:健壮,防患于未然:具有多线程处理能力:具 ...
- [转]阿拉伯数字转一二三和壹贰叁
/// <summary>/// 本类实现阿拉伯数字到大写中文的转换/// 该类没有对非法数字进行判别,请事先自己判断数字是否合法/// </summary>public cl ...
- 初等数论--整除--整数表示:算数分解定理/素因数分解式/进制表示
初等数论--整除--整数表示:算数分解定理/素因数分解式/进制表示 博主是初学初等数论(整除+同余+原根),本意是想整理一些较难理解的定理.算法,加深记忆也方便日后查找:如果有错,欢迎指正. 我整理成 ...
最新文章
- SAP PP 启用了MRP Area之后MMBE有什么变化?
- Ubuntu读取/root/.profile时发现错误:mesg:ttyname fa
- java查找最小字符集_如何查找Java中的默认字符集/编码?
- php正则表达式正向预查,javascript正则表达式-----正向预查
- 特征选择算法java实现_relief算法特征选择
- highcharts 显示平均值数值_拼多多评价多久能显示,有什么出评价技巧吗?
- Serverless 在大规模数据处理中的实践
- 使用栈解决的一类经典问题:表达式转换及求值;中缀表达式;前缀表达式,后缀表达式,中缀转前缀;中缀转后缀;后缀表达式求值;波兰式,逆波兰式
- 客户端级别的渲染分析工具 dynaTrace
- 详解DMZ的部署与配置:ISA2006系列之二十九
- perl linux 独立运行,Perl脚本打包为独立执行程序
- 物质与意识,联系与发展
- java 程序题 二分法查找二维数组(Dichotomy)
- 研究生期间如何赚外快
- c语言对随机数进行快速排序,C语言自带快速排序对比插入排序
- 新款车型防盗器的安装方法
- R语言学习记录:proc.time、Sys.time函数
- 如何制作生成gif?快速生成制作生成的方法来了
- 如何在 Windows 10 上永久禁用 Microsoft Defender 防病毒软件
- Listary入门教程 高效的使用方法