扩展一个数字的位表示和截断数字
来源:互联网 发布:java 数据结构和特点 编辑:程序博客网 时间:2024/05/17 01:13
一、扩展一个数字的位表示
一种常见的运算是在不同字长的整数之间转换,例如,从一个较小的数据类型转换到一个较大的数据类型。
将一个无符号数转换为一个更大的数据类型,只需要简单地在表示的开头添加 0,这种运算称为零扩展。
将一个补码数字转换为更大的数据类型要执行符合扩展,规则是在表示中添加最高有效位的值的副本。如果原始的位表示为,那么扩展后的位表示为。
下面证明符号扩展是正确的,即证明下式:
表达式的左边增加了k位的副本。采用的是数学归纳法,即证明符号扩展一位保持数值不变,那符号扩展任何位都保持这种属性。
根据定义展开,
二、截断数字
例如,在一台32位机上,将 int类型强制转换为short时,就会将32位的int截断为16位的,将一个w位的数截断为一个k位数字时,将会丢弃高w-k位,得到一个位向量,截断一个数字可能会改变一个它的值,这是溢出的一种形式。
对于一个无符号数 x,截断它到k位,相当于计算,通过下式计算得到:
对于一个补码数字 x, 相似的推理可知道,
,也就是, 能都被位级表示为 ,不过,一般而言,这个被截断的数字被视为有符号的,这将得到数值 。
参考:深入理解计算机系统(第二版)
0 0
- 扩展一个数字的位表示和截断数字
- 扩展一个数字的位表示
- 随笔十七:扩展一个数字的位表示
- 位扩展和位截断
- 扩展数字位
- 实现输出一个数字的二进制表示
- NaN 表示一个非法的数字.
- vc将字符串表示的任意位数字进行小数位保留和四舍五入
- 给定一个数字表示为数字数组,加上一个数字。
- 得到一个数字中每一位的数字
- 颜色的数字表示
- 数字表示的电容
- 写一个宏可以将一个数字的奇数位和偶数位交换。
- 写一个宏可以将一个数字的奇数位和偶数位交换
- 写一个宏可以将一个数字的奇数位和偶数位交换
- 写一个宏将一个数字的奇数位和偶数位交换
- 用宏写一个函数可以将一个数字的奇数位和偶数位互换
- 【C语言】写一个宏将一个数字的奇数位和偶数位交换
- 在 Laravel 中通过 Artisan View 扩展包创建及删除应用视图文件
- C# DateTime的ToString()方法的使用
- HIHO #1296 : 数论三·约瑟夫问题
- linux eclipse编译程序
- 深入浅出SQL--学习笔记
- 扩展一个数字的位表示和截断数字
- 关于布局中float的常见问题及解决办法
- 使用IntelliJ IDEA 13搭建Android集成开发环境图文教程
- Android之滑动view
- springmvc4+spring4+hibernate整合教程
- 11个有用的移动网页开发App和HTML5框架
- VXBUS
- LeetCode #3: Longest Substring Without Repeating Characters
- ActiveMQ的实现