我将从标签获取的字节转换为序列号时遇到问题。
我从标签中得到这个字节: 2 52 66 48 48 65 57 55 70 57 48 48 68 13 10 3
我用C#编写代码,这是代码:
SerialPort port = new SerialPort("COM2", 9600, Parity.None, 8, StopBits.One);
port.Open();
while (true)
{
if (port.BytesToRead > 0)
{
byte b = (byte)port.ReadByte();
Console.WriteLine(b);
}
}
port.Close();
标签序列号为:0011108240。
我试图将这些数字转换为ASCII,但我没有得到任何东西。 那么如何从我从标签收到的字节中获取0011108240?
这里是我从手册中获得的代码,它是用pascal写的,我不懂,有人可以告诉我怎么做?
function tform1.hextoint(input : string):longint;
var
c,i : longint;
input1 : string;
begin
c:=0;
input1:='';
for i:=length(input) downto 1 do input1:=input1+input[i]+'';
input1:=uppercase(input1);
for i:=1 to length(input1) do
begin
if (input1[i] in ['A'..'F'])and(i>1)then
c:=((ord(input1[i])-ord('A')+10) shl (4*(i-1)))or c
else
if (input1[i] in ['0'..'9'])and(i>1)then
c:=((ord(input1[i])-ord('0')) shl (4*(i-1))) or c
else
if (input1[i] in ['A'..'F'])and(i=1)then
c:=(ord(input1[i])-ord('A')+10) or c
else
if (input1[i] in ['0'..'9'])and(i=1)then
c:=(ord(input1[i])-ord('0')) or c;
end;
result:=c;
end;
感谢。