怎样用12bit表示一个数,数制的转换有点糊涂

lningbd 2004-01-15 08:55:58
最高位为符号位,是0时表示正数,是1时表示负数;
规则:0x7ff表示1039.2,0x800表示0。
请问小于0而大于-1039.2的数如何表示?
...全文
265 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
likangnian0128 2004-01-15
  • 打赏
  • 举报
回复
用12位补码表示整数:(我不知道你想表示的是什么?1039.2是小数?0x7ff表示1039.2?0x800表示0?很古怪……)
正数为其原码:
1为0x001…………
0为0x000
2047为0x7ff

负数为其相反数的原码取反,再加1
-1: 相反数的原码0x001,取反0x7fe,加1为0x7ff
-0: 相反数的原码0x000,取反0x7ff,加1为0x000
-2048: 相反数的原码为0x800,取反为0x7ff,加1为0x800,取后面12位为0x000
jeff77 2004-01-15
  • 打赏
  • 举报
回复
用补码表示啊,看看微机原理的书都有的
yaven365 2004-01-15
  • 打赏
  • 举报
回复
char int12[12]="";

然后对一个数(0-1039.2)按位运算后存入

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧