社区
数据结构与算法
帖子详情
浮点数如何用补码来表示
heshang88
2009-07-29 09:54:04
问题:如何将X=2¹¹*(-0.1100101))(请注意,由于打印的原因2的幂次方上是11)
Y=2¹¹°*(+1.1010001)(请注意,由于打印的原因2的幂次方上是110)
如何将它用X,Y分别用补码来表示出来。
书上的答案是这样的:
[X]的补码=00,0011;11,0011011
[Y]的补码=00,0110;00,1000001
我没有搞懂,它们是怎样得出来的啊,请高手帮助
...全文
3308
3
打赏
收藏
浮点数如何用补码来表示
问题:如何将X=2¹¹*(-0.1100101))(请注意,由于打印的原因2的幂次方上是11) Y=2¹¹°*(+1.1010001)(请注意,由于打印的原因2的幂次方上是110) 如何将它用X,Y分别用补码来表示出来。 书上的答案是这样的: [X]的补码=00,0011;11,0011011 [Y]的补码=00,0110;00,1000001 我没有搞懂,它们是怎样得出来的啊,请高手帮助
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
heshang88
2009-08-03
打赏
举报
回复
好的,谢谢
gemini_star
2009-07-31
打赏
举报
回复
补码是指整数的表示方式,浮点数的一般表示方式是IEEE的标准 1位符号+8位指数(移127)+23位位数
你的X是负数,所以符号位是1。 尾数0.1100101左移一位变成1.10010100000000000000000 同时指数减去1变成9,移码为9+127=136=(10001000)2
所以IEEE的标准浮点数表示为11000100010010100000000000000000 我不知道你的答案是哪里来的。IEEE的单精度浮点格式是32位的。大概是你的教科书上自己定义了一个格式吧
fireseed
2009-07-30
打赏
举报
回复
以前写的一个分析浮点数的代码,仅供参考
float fTest = 54345.3435f;
unsigned char *pData = (unsigned char*)&fTest;
float fRes = 1.0f; // 表示1.xxx
// 提取尾数
for ( unsigned int i = 0; i < 23; ++i )
{
// 确定尾数所在的字节,并计算当前的位在字节中的位置
unsigned char nBit = pData[ 2 - ( i + 1 ) / 8 ] << ( i + 1 ) % 8;
nBit >>= 7;
fRes += (float)nBit / ( 2 << i ); // 2<<i相当于2^i
}
// 提取阶码,阶码位于第30位到第23位
unsigned char nExp = pData[3];
nExp <<= 1; // 除掉附号位
nExp |= ( pData[2] >> 7 ); // 与下个字节的首位合并,组成阶码
nExp -= 0x7F; // 减127得到原阶数
fRes *= pow( 2.0f, (float)*(char*)&nExp );
// 提取符号位,位于最高位,第31位
if ( pData[3] & 0x80 )
{ // 最高位为1则为负,为0则为正
fRes = -fRes;
}
cout << setprecision(10) << fTest << "->" << fRes;
补码
的乘法,除法算法演示,以及
浮点数
的内码输出代码
我的计算机组成原理作业,可以对不大的整数进行算数运算的内码演示
浮点数
表示
方式总结
浮点数
表示
方式总结,课程要用到的,老师必备,学生必看。
计算机组成原理:第二章
浮点数
.ppt
计算机组成原理:第二章
浮点数
.ppt
计算机组成原理定点数
浮点数
等运算方法复习PPT课件.pptx
计算机组成原理定点数
浮点数
等运算方法复习PPT课件.pptx
浮点数
运算[定义].pdf
浮点数
运算[定义].pdf
数据结构与算法
33,028
社区成员
35,337
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章