免费注册 查看新帖 |

Chinaunix

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

区位十进制格式的区部分到底是什么用意? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-17 11:21 |只看该作者 |倒序浏览
区位十进制格式的区部分到底是什么用意?区位部分的值是怎么规定的呢?
区部分是在每个字节的高四位还是低四位?

论坛徽章:
0
2 [报告]
发表于 2008-12-17 11:48 |只看该作者
用ULTRAEDIT 看看

论坛徽章:
0
3 [报告]
发表于 2008-12-17 12:34 |只看该作者
一个字节(BYTE)是8位(BIT).
而数字最大是9,只要后面4BIT用1001(2进制)就可以表示了,前面的四位就浪费了,
所以就出现了压缩型数字.
对于非压缩型数字(原文应该是ZONE,不同的地方翻译也不一样),前面的4个BIT是用'1'填充的,
也就是十六进制里的F,所以如果数字是0的话,存放的就是11110000(2进制)/F0十六进制,
其他类推.

论坛徽章:
0
4 [报告]
发表于 2008-12-18 16:54 |只看该作者

回复 #3 roden 的帖子

但是我查资料发现4位区部分放的并不是1111(十六进制的F),区部分会不会跟区位十进制的符号位有关系呢?

论坛徽章:
0
5 [报告]
发表于 2008-12-18 17:15 |只看该作者
不知道你说的与'汉字用区位码表示'有没有关系?

论坛徽章:
0
6 [报告]
发表于 2008-12-18 22:54 |只看该作者

回复 #5 digitalchina 的帖子

跟汉字没关系,现在就只是想知道数字的,区位到底是怎么规定的?

论坛徽章:
0
7 [报告]
发表于 2008-12-19 09:35 |只看该作者
原帖由 roden 于 2008-12-17 12:34 发表
一个字节(BYTE)是8位(BIT).
而数字最大是9,只要后面4BIT用1001(2进制)就可以表示了,前面的四位就浪费了,
所以就出现了压缩型数字.
对于非压缩型数字(原文应该是ZONE,不同的地方翻译也不一样),前面的4个BIT是 ...

我这次定义了8S,0     8P,0的两个数值类型的变量,给他们传值后看不出有什么不一样的地方.
在实际应用上,一般都用压缩的多.区位的有什么方式测试下吗?怎么定义来看效果.

论坛徽章:
0
8 [报告]
发表于 2008-12-19 13:01 |只看该作者
8S 0类型:123 在内存或者表里16进制值为:F0 F0 F0 F0 F0 F1 F2 F3
8P 0类型:123 在内存或者表里16进制值为:00 00 00 12 3F
8S 2类型:1.23 在内存或者表里16进制值为:F0 F0 F0 F0 F0 F1 F2 F3
8P 2类型:1.23 在内存或者表里16进制值为:00 00 00 12 3F
8S 2类型:-1.23 在内存或者表里16进制值为:F0 F0 F0 F0 F0 F1 F2 D3
8P 2类型:-1.23 在内存或者表里16进制值为:00 00 00 12 3D
怎么样?看出规律来没有?
不相信的话,编个 PF 测试一下:例如 AT1 PF:
     A          R RAT1                                   
     A            FLD1           8P 0       TEXT('FLD1')
     A            FLD2           8P 2       TEXT('FLD2')
     A            FLD3           8S 0       TEXT('FLD3')
     A            FLD4           8S 2       TEXT('FLD4')
编译到 QTEMP/AT1
然后 STRSQL:
INSERT INTO QTEMP/AT1 VALUES(123, 1.23, 123, 1.23)        
INSERT INTO QTEMP/AT1 VALUES(-123, -1.23, -123, -1.23)   
SELECT HEX(FLD1), HEX(FLD2), HEX(FLD3), HEX(FLD4) FROM AT1
自己看看结果吧

论坛徽章:
0
9 [报告]
发表于 2008-12-24 14:42 |只看该作者
原帖由 tianya0229 于 2008-12-19 09:35 发表

我这次定义了8S,0     8P,0的两个数值类型的变量,给他们传值后看不出有什么不一样的地方.
在实际应用上,一般都用压缩的多.区位的有什么方式测试下吗?怎么定义来看效果.

晕,点错了,真是对不起

论坛徽章:
0
10 [报告]
发表于 2011-04-25 14:22 |只看该作者
回复 8# ux400


    你好,请问下400对于小数点的标识是怎么样的呢。从你的数据中,可以看到
8P 0类型:123 在内存或者表里16进制值为:00 00 00 12 3F
8P 2类型:1.23 在内存或者表里16进制值为:00 00 00 12 3F
这两者是一样的,无法区分小数点在哪。当然数据我验证过是对的。

   另外能解释下数据末尾F和D的意思吗。应该是和正负有关吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP