L loverofangel Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-15 #1 在做串口通讯,比如我要给终端发送时间进行时间校对,而我本地的时间是用字符串表示的。举例来说,我的年只用后两位表示:'05',那么如何转换成16进制的05呢?就是用2进制来表示是0000 0100,我有点迷糊了,大侠们赶紧帮我看看吧。
在做串口通讯,比如我要给终端发送时间进行时间校对,而我本地的时间是用字符串表示的。举例来说,我的年只用后两位表示:'05',那么如何转换成16进制的05呢?就是用2进制来表示是0000 0100,我有点迷糊了,大侠们赶紧帮我看看吧。
L loverofangel Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-15 #2 在做串口通讯,比如我要给终端发送时间进行时间校对,而我本地的时间是用字符串表示的。举例来说,我的年只用后两位表示:'05',那么如何转换成16进制的05呢?就是用2进制来表示是0000 0100,我有点迷糊了,大侠们赶紧帮我看看吧。
在做串口通讯,比如我要给终端发送时间进行时间校对,而我本地的时间是用字符串表示的。举例来说,我的年只用后两位表示:'05',那么如何转换成16进制的05呢?就是用2进制来表示是0000 0100,我有点迷糊了,大侠们赶紧帮我看看吧。
L loverofangel Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-15 #3 是不是使用byte($05)就可以了?这样发送过去的一个字节里边是不是0000 0100?
Y yueing Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-15 #4 通讯传输中,你可以不用考虑 二机制的。 定义通讯数据中时间 如 年月日,时分秒 的格式。 例如 采用 一字节、十六进制表示 2005 07 15 --> $05 $07 $0F 当获取数据包是,进行日期时间重组,然后于本地时间比较
通讯传输中,你可以不用考虑 二机制的。 定义通讯数据中时间 如 年月日,时分秒 的格式。 例如 采用 一字节、十六进制表示 2005 07 15 --> $05 $07 $0F 当获取数据包是,进行日期时间重组,然后于本地时间比较
L loverofangel Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-15 #5 如何把16进制的数字组装起来发出去啊,我用的spcomm的WriteCommData方法,第一个参数是PAnsiChar格式的,是要把这些16进制的数组成字符串吗?那每个16进制数还是一个字节吗?对方接收的时候有没有影响?
如何把16进制的数字组装起来发出去啊,我用的spcomm的WriteCommData方法,第一个参数是PAnsiChar格式的,是要把这些16进制的数组成字符串吗?那每个16进制数还是一个字节吗?对方接收的时候有没有影响?
R Reesinx Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-15 #6 那是一个指针 从指针开始 一直到#0结束 具体这中间的内容和格式 要看你终端有什么样的要求
L loverofangel Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-15 #7 终端要求用16进制的。 我是不是可以这样:050715这个串,对每一个都strtoint,然后IntToHex,然后把得到的16进制字符串连接起来,发送。可以吗? 我用Sizeof求每一个字符转IntToHex以后结果都是4,那还是要求的一字节吗?
终端要求用16进制的。 我是不是可以这样:050715这个串,对每一个都strtoint,然后IntToHex,然后把得到的16进制字符串连接起来,发送。可以吗? 我用Sizeof求每一个字符转IntToHex以后结果都是4,那还是要求的一字节吗?
R Reesinx Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-15 #8 TDateTime 实际上是 Double 类型 比如 1/1/1996 12:00 am 是 35065 我不清楚你的终端要求的是 35065 的16进制表示 还是'1/1/1996'的16进制表示
L loverofangel Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-15 #9 他是这样要求的,就是我给他把05用16进制发过去,他收到的数据是单字节的05,就是00000100,我的问题其实就是如何把一个字符串(全是数字,比如‘050715’)转化成16进制发送到终端。
R Reesinx Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-15 #10 那么 var buf: array [0..99] of Byte; begin buf[1] := 05; buf[2] := 07; buf[3] := 15; end; 不就可以了吗?
嫁 嫁给cpu Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-16 #12 var buf: array [0..99] of Byte; begin buf[1] :=$05; buf[2] :=$07; buf[3] :=$15; end; ============ 应该是这样!
var buf: array [0..99] of Byte; begin buf[1] :=$05; buf[2] :=$07; buf[3] :=$15; end; ============ 应该是这样!
L loverofangel Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-18 #13 那用IntToHex函数形成的串传过去是什么东西?是$05呢,还是它的ASCII码?
A agamem Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-20 #15 你说的是BCD码!! 呵呵! function ToBCD(vData: Integer): Byte; var a: Byte; begin a := Byte(vData mod 100); Result := a + (a div 10) * 6; end; function FromBCD(vData: Byte): Integer; var a: Integer; begin a := (vData div 16) *10 + (vData mod 16); Result :=a; end;
你说的是BCD码!! 呵呵! function ToBCD(vData: Integer): Byte; var a: Byte; begin a := Byte(vData mod 100); Result := a + (a div 10) * 6; end; function FromBCD(vData: Byte): Integer; var a: Integer; begin a := (vData div 16) *10 + (vData mod 16); Result :=a; end;