键值问题,恳请赐教 ( 积分: 50 )

  • 主题发起人 主题发起人 longnp
  • 开始时间 开始时间
L

longnp

Unregistered / Unconfirmed
GUEST, unregistred user!
键值到底是ASCII还是BCD码呢?我问了几个人回答的我都吐血了,答什么的都有,还有 #跟数字是怎么回事啊?procedure TfrmAccInfoEdit.KMBMKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin

if locklen > 0 then
if kmbm.SelStart = locklen then
if (key=46) or ((key>=37) and (key<=40)) then
key := 0;
麻烦你给分析分析这函数。LOCKLEN是什么啊?我等,真诚的谢谢。
他对应的表有吗?
 
键值到底是ASCII还是BCD码呢?我问了几个人回答的我都吐血了,答什么的都有,还有 #跟数字是怎么回事啊?procedure TfrmAccInfoEdit.KMBMKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin

if locklen > 0 then
if kmbm.SelStart = locklen then
if (key=46) or ((key>=37) and (key<=40)) then
key := 0;
麻烦你给分析分析这函数。LOCKLEN是什么啊?我等,真诚的谢谢。
他对应的表有吗?
 
是ASCII还是BCD码?晕,还是看看书吧[:D]

BCD码(二到十进制编码)
人们通常习惯使用十进制数,而计算机内部多采用二进制表示和处理数值数据,因此在计算机输入和输出数据时,就要进行由十进制到二进制的转换处理。

把十进制数的每一位分别写成二进制形式的编码,称为二进制编码的十进制数,即二到十进制编码或BCD(Binary Coded Decimal)编码。

BCD码编码方法很多,通常采用8421编码,这种编码方法最自然简单。其方法使用四位二进制数表示一位十进制数,从左到右每一位对应的权分别是23、22、21、20,即8、4、2、1。例如十进制数1975的8421码可以这样得出

1975(D)=0001 1001 0111 0101(BCD)

用四位二进制表示一位十进制会多出6种状态,这些多余状态码称为BCD码中的非法码。BCD码与二进制之间的转换不是直接进行的,当需要将BCD码转换成二进制码时,要先将BCD码转换成十进制码,然后再转换成二进制码;当需要将二进制转换成BCD码时,要先将二进制转换成十进制码,然后再转换成BCD码。
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
679
import
I
I
回复
0
查看
691
import
I
后退
顶部