比如,将缓存中读出的八位二进制11111111转换成十六进制数FF然后显示在Memo1中,该如何实现~
希望大家能举例说明~
希望大家能举例说明~
解决方案 »
- 如何把 tmpstr:sting 写入stream 在线等
- 要使用Hash,找了半天只找到THashedStringList,但是又不能满足要求?难道Delphi没法使用Hash吗?
- 我用TSiredProc来调用存储过程的时候,遇到一个问题,请高手指点!!!急!!!
- 有沒有For ADO的TBatchMove?
- 简单问题,form 作成父窗口时,为什么下面的toolbar会有双层,谢谢,急,急,急,
- 如何改变Excel的网格颜色。
- 控件都是通用的吗?~~~
- Delphi如何实现16进制 与 10进制 相互转换
- 请教VC++中的CMUTEX在Delphi中用什么来代替或取的作用与之相近?谢谢!
- 谁会刻光盘!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- IdTcpServer的ReadBuffer的问题。
- 你牛吗?牛就进来吧,AT指令问题
我要做一个串口通信,PC机接收单片机的信息,通过RS232实现,用的是MSComm控件,现在想将接收缓存中的二进制数转换为十六进制显示在Memo中,
大大有什么方法没~感谢!
var
subStr: String;
iLen: Integer;
P,P1: PChar;
begin
iLen := Length(InStr);
SetLength(Result, iLen div 4);
P :=PChar(InStr);
P1 := PChar(Result);
while iLen>0 do begin
SetString(SubStr,P,4);
case SubStr of
'0000':
P1^ := '0';
'0001':
P1^ := '1';
'0010':
P1^ := '2';
'0011':
P1^ := '3';
'0100':
P1^ := '4';
'0101':
P1^ := '5';
'0110':
P1^ := '6';
'0111':
P1^ := '7';
'1000':
P1^ := '8';
'1001':
P1^ := '9';
'1010':
P1^ := 'A';
'1011':
P1^ := 'B';
'1100':
P1^ := 'C';
'1101':
P1^ := 'D';
'1110':
P1^ := 'E';
'1111':
P1^ := 'F';
end;
Inc(P,4);
Inc(P1);
Dec(iLen,4)
end;
end;
一个个字节使用IntToHex转换即可
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
IntToHex(11111111,i);
ShowMessage(IntToStr(i));
end;
发现ShowMessage出来的值怎么会变来变去的,而且不是十六进制数,只是一些8位的整数
BinToHex也可以完成,或者说更好。
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
IntToHex(11111111,i);
ShowMessage(IntToStr(i));
end;
发现ShowMessage出来的值怎么会变来变去的,而且不是十六进制数,只是一些8位的整数
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
str: String;
begin
str:=IntToHex(11111111,6);
ShowMessage(str);
end;
IntToHex(a,2) -> 0F
var
i:integer;
str: String;
begin
i:= 11111111;
SetLength(str, sizeof(i) * 2);//一个字节会变成两个十六进制字符
BinToHex(PChar(@I),PChar(str),sizeof(i));
ShowMessage(str);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
src: PChar;
str: String;
begin
src := '11111111';
SetLength(str, strlen(src) * 2);//一个字节会变成两个十六进制字符
BinToHex(src,PChar(str),strlen(src));
ShowMessage(str);
end; procedure TForm1.Button1Click(Sender: TObject);
var
src: String;
str: String;
begin
src := '11111111';
SetLength(str, length(src) * 2);//一个字节会变成两个十六进制字符
BinToHex(PChar(src),PChar(str),length(src));
ShowMessage(str);
end;