【计算机组成&体系结构】移码 | 定点小数的表示和运算

一、移码

上篇我们提到了原码,反码和补码的表示形式和如何转换。这篇我们会提到一个新的概念---移码 。移码也很简单,其实就是在补码的基础上把符号取反即可。

值得注意的是,移码只能表示整数 。而原码,反码和补码既可以表示整数又可以表示小数。

其次,移码和补码一样,对于真值0只有一种表示形式。 因此,对于8bit移码,表示范围为-128~+127。

把真值由大到小的对应的补码和其对应的移码列出,我们发现,移码-128是00000000,而127是11111111,如果按无符号整数解读,正好是无符号整数的0---255,这种规律使得用硬件电路对应移码大小非常方便,且移码经常用于浮点数的阶码当中。
各种码的基本特性总结

二、定点小数的表示和运算

定点小数的表示方法有三种,原码,反码和补码。与定点整数的唯一区别是,我们默认的小数点位置不同,因此不同位对应的位权自然也不同。

1.原码

可以看到,对于定点小数来说,原码的表示方法和定点整数基本一致。第一位表示符号位,但定点小数的小数点默认在符号位后面。所以对于0.1100000 来说,表示的是+0.75,对于1.1100000 来说,表示的是-0.75。 ( 定点小数的写法常常在符号位加 " ." )

2.反码和补码转换(和定点整数相同)

3.加减运算

定点小数的加减运算和定点整数的加减运算相同,都是要先转化为补码再进行运算。

(1)定点小数加法

(2)定点小数减法

4.定点小数&定点整数

对于定点小数,原码和反码同样的有相同的表示范围和转化方式。而对于定点小数的补码,最小值为-1,并且同样真值0只有一种补码。

定点小数和定点整数还有一个区别,在对位数进行扩展的时候,扩展的位置不同,如上图所示。如果把4bit的定点小数扩展为8bit,则需要在数值位末尾加0,而对于定点整数则是在符号位后,数值位头部加0。

相关推荐
大佬,救命!!!7 小时前
C++本地配置OpenCV
开发语言·c++·opencv·学习笔记·环境配置
map_3d_vis1 天前
JSAPIThree 加载 Mapbox 数据学习笔记:使用 Mapbox 矢量瓦片地图
学习笔记·mvt·mapbox·矢量瓦片·初学者·mapvthree·jsapithree·mapboxvectortileprovider
map_3d_vis2 天前
JSAPIThree 加载 Cesium 数据学习笔记:使用 Cesium 地形和影像服务
学习笔记·cesium·地形·初学者·terrain·mapvthree·jsapithree·cesiumterraintileprovider
普普通通的一名码农3 天前
电化学-NanoStat-硬件电路解析(一)
学习笔记·电化学·nanostat
四谎真好看3 天前
Java 黑马程序员学习笔记(进阶篇30)
java·笔记·学习·学习笔记
四谎真好看4 天前
Linux 附录二,实验一
linux·运维·服务器·学习笔记
Johnny_le4 天前
生物化学Learning Track(24)三羧酸循环
学习笔记·生物化学
map_3d_vis4 天前
JSAPIThree 数据源系统学习笔记:让数据在地图上可视化
json·学习笔记·csv·geojson·datasource·数据源·初学者·mapvthree·jsapithree
map_3d_vis8 天前
JSAPIThree 天空和天气系统学习笔记:营造真实的环境氛围
学习笔记·天气系统·初学者·mapvthree·jsapithree·天空系统·defaultsky·dynamicsky·staticsky·dynamicweather
map_3d_vis9 天前
JSAPIThree UI 控件学习笔记:用内置控件提升交互
学习笔记·zoom·初学者·compass·ui控件·mapvthree·jsapithree·enginewidgets·exportimage