搜索
编程论坛
→
数据库技术
→
『 VFP论坛 』
→ 数值在word存储中如下例子 中的式子表示什么意思?请指教。
标题:
数值在word存储中如下例子 中的式子表示什么意思?请指教。
取消只看楼主
sylknb
等 级:
贵宾
威 望:
14
帖 子:1519
专家分:174
注 册:2006-6-3
结帖率:
79.3%
楼主
已结贴
√
问题点数:20 回复次数:7
数值在word存储中如下例子 中的式子表示什么意思?请指教。
有以下2个问题请教。
1)一个10进制数值求出该值在WORD中的高位与低位。如2006为例求出高位与低位的ASCII码串
高位 ASCII码串 :chr(int(2006/256)) **为何用到取整?它得出结果是二进制
低位 ASCII码串: chr(mod(2006,256)) **为何用到取模?
2)
10进制数值存储在WORD格式(16位)中它以字符形式存储还是以二进制形式存储?
搜索更多相关主题的帖子:
word
二进制
2012-01-19 18:32
sylknb
等 级:
贵宾
威 望:
14
帖 子:1519
专家分:174
注 册:2006-6-3
第
2
楼
得分:0
还不是十分清楚。再次请教。笨呀。
再加一个问题:什么叫建立结构字符串
2012-01-19 19:20
sylknb
等 级:
贵宾
威 望:
14
帖 子:1519
专家分:174
注 册:2006-6-3
第
3
楼
得分:0
张洪举编的权威指南中调用API有关内容
2012-01-19 20:34
sylknb
等 级:
贵宾
威 望:
14
帖 子:1519
专家分:174
注 册:2006-6-3
第
4
楼
得分:0
简单通俗点吧.化学专业当时只简单学了一点BASIC。VFP在工作中自学的。请多多包函
2012-01-19 21:44
sylknb
等 级:
贵宾
威 望:
14
帖 子:1519
专家分:174
注 册:2006-6-3
第
5
楼
得分:0
首先谢谢,向您拜个早年。正在拜读。
通过计算已知高位的1是低位1的256倍。256在WORD中的形式是“CHR(00000000的10进制值)+CHR(00000001的10进制值*256)”。此句已理介了。
低位 高位
现有一个2006,求出该值在WORD中的高位与低位。由于高位是低位的256倍,所以用高位值除于256所得到的数值便是高位的ASCII码值,所得的余数是低位ASCII码的值。
1)为什么求高位ASCII码时除于256?(是不是象10进制化成2进制进除以2一样?int(2006/256)的值相当于10进制化为2进制时的商?)
2)下面二个式子如何对应起来
256在WORD中的形式是 CHR(00000000的10进制值)+CHR(00000001的10进制值*256)”
低位 高位
2006在WORD中形式 chr(mod(2006,256)) + chr(int(2006/256))
2012-01-20 11:25
sylknb
等 级:
贵宾
威 望:
14
帖 子:1519
专家分:174
注 册:2006-6-3
第
6
楼
得分:0
认真拜读后很有启发多谢了。你的大作中有的地方还请再指教一下。
《對二進制數據10110000
10001010
11101101,它的十六進制表示形式為0xB08AED,十進制表示形式為11569901(其實都是同一個數,計算機就只認識二進制那個,其餘都是給人看的),是3個8位BYTE數據構成的一串,我們可以用不同的視角看待它。如果是一個完整的整數,它就是十進制11569901;如果是3個整數的數組,它就是十進制{237,138,176},十六進制的{B0,8A,ED};如果是字符串,就是CHR(237)+CHR(138)+CHR(176)》
问题1
:
(a)如果是3個整數的數組,它就是十進制{
237
,138,
176
}它{ }中的值是不是:
237->
11101101
,138-->10001010,
176->
1011000
,
它的顺序与上面二进制数据中的顺序相反,变成低 中 高。
是不是你后面讲到的内存格式是低位在前,高位在后?
(b)如果是字符串,就是CHR(237)+CHR(138)+CHR(176)排列顺序相反。
同上理由
?
(c)十六進制的{B0,8A,ED}排列顺序与上面二进制数据是一一对应的,为什么?
<WORD類型,是16位的,由2個BYTE構成,它的內存格式是{a,b},其中a是低位,b是高位(這是Intel處理器的特點,不是所有處理器都是這樣的)。對WORD值0xB0ED來說,我們現在看到B0在前、ED在後,但在計算機內存中其實是ED在前、B0在後,所有整數都是按先低後高的次序一路排列。
因此,要轉換0xB0ED為C接受的內存格式,就要按同樣的順序,寫CHR(0xED)+CHR(0xB0),即所謂ED是低位、B0是高位,與人眼看到的0xB0ED相同。
對RGB(red,green,blue)顏色值,是CHR(blue)+CHR(green)+CHR(red),這樣格式的內存數據,因為反過來讀,才叫RGB,這個數的十六進制形式,看起來就是藍綠紅。>
问题2
因此,要轉換0xB0ED為C接受的內存格式,就要按同樣的順序,寫CHR(0xED)+CHR(0xB0),即所謂ED是低位、B0是高位,與人眼看到的0xB0ED相同。
后半句与前半句不相应,人眼看到的高位在前,低位在后,内存格式是低位在前高位在后。
[
本帖最后由 sylknb 于 2012-1-20 16:39 编辑
]
2012-01-20 16:36
sylknb
等 级:
贵宾
威 望:
14
帖 子:1519
专家分:174
注 册:2006-6-3
第
7
楼
得分:0
如指在Intel處理器中
對二進制數據10110000 10001010 11101101
1。
如果是3個整數的
數組
,它就是十進制{237,138,176}
为什么237写在前面,176写在后面。写成{176,138,237}可否?
2。
要轉換0xB0ED為C接受的內存格式,就要按同樣的順序,寫CHR(0xED)+CHR(0xB0),即所謂ED是低位、B0是高位,
與人眼看到的0xB0ED相同
。
怎么会相同呢?人看到是0xB0ED,内存放置的是寫CHR(0xED)+CHR(0xB0)
2012-01-20 18:22
sylknb
等 级:
贵宾
威 望:
14
帖 子:1519
专家分:174
注 册:2006-6-3
第
8
楼
得分:0
不是关心的事情,主要是没有C语言的基础,对书上东西看不懂,又不甘心照样画图。
1、如果是3個整數的數組,它就是十進制{237,138,176}
.“這是分離了看,三個數不是整體,不用顛倒”。我就要这个结果。它也是从低位到高位的结论。
2.那是指計算機執行的
效果
跟人眼看到的相同。加上效果两字让人懂了。
谢谢您!如此耐心,诲人不倦的精神值得让人感动。再祝新年全家安康,万事如意。
2012-01-20 20:42
8
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-359876-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.563596 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved