免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5391 | 回复: 14
打印 上一主题 下一主题

问一个十六进制和十进制的转换问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-06-04 05:03 |只看该作者 |倒序浏览
请问pc机的803f和80bf是怎么换算成1和-1的,这个好象不是像某些书上说的直接乘16吧。是不是先换成二进制,再转成十进制?试了一把,比如803f换成二进制就是:
1000 0000 0011 1111 怎么看也不象是1呀。

论坛徽章:
0
2 [报告]
发表于 2005-06-04 10:13 |只看该作者

问一个十六进制和十进制的转换问题

803f和80bf是什么编码?

论坛徽章:
0
3 [报告]
发表于 2005-06-04 12:58 |只看该作者

问一个十六进制和十进制的转换问题

我是用c语言写一个数据文档,用看16进制的编辑器看的,如果写成文本格式,803f是1,80bf是-1,我就是不知道这个是怎么变换的,书上没有写.

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-06-04 13:09 |只看该作者

问一个十六进制和十进制的转换问题

>;>;我是用c语言写一个数据文档
你是怎么写出来的?
>;>;如果写成文本格式,803f是1,80bf是-1
这又是怎么写的?
没有任何一个编码能从803f转化成1,80bf转化成-1,除非是自己定义

论坛徽章:
0
5 [报告]
发表于 2005-06-04 14:31 |只看该作者

问一个十六进制和十进制的转换问题

就是直接用fopen(file,"wb"打开一个文件,然后用,fwrite把数据写进这个文件,然后用emacs或者ue打开,在16进制格式下面看.就是0000803f,如果是用sun机器写的文件,就是3f800000,所谓的big-endian格式.我现在就是不知道这是怎么转换的

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
6 [报告]
发表于 2005-06-04 14:50 |只看该作者

问一个十六进制和十进制的转换问题

你把那两个fwrite语句贴出来吗?
再:你是怎么知道803f变成了1,80bf变成了-1的?

论坛徽章:
0
7 [报告]
发表于 2005-06-04 15:04 |只看该作者

问一个十六进制和十进制的转换问题

不是"803f变成了1,80bf变成了-1的",是1在这个数据文件中是0000803f,而
-1是80bf

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
8 [报告]
发表于 2005-06-04 15:11 |只看该作者

问一个十六进制和十进制的转换问题

不好意思,还是没搞明白你的意思!
你是说:
int ary[2] = {1, -1);
fwrite(ary, sizeof(ary), 1, fp);
然后用ue打开文件一看,我靠!成了00 00 80 3f 00 00 80 bf ?
我认为这不可能!
你还是把代码贴上来吧,不然说不清楚

论坛徽章:
0
9 [报告]
发表于 2005-06-04 23:59 |只看该作者

问一个十六进制和十进制的转换问题

给一个小程序,如果感兴趣,还可以去水母上看我对这个问题发的讨论。

int main()
{
    char num[] = { 0x00, 0x00, 0x80, 0xbf };
    printf("%d\n", *((int*)num));
}

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
10 [报告]
发表于 2005-06-05 14:00 |只看该作者

问一个十六进制和十进制的转换问题

没看出有什么特别的来
在RH9中得到结果-1082130432
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP