类型转换:怎样把一个16进制的字串转换为byte[](100分)

Z

zjj12

Unregistered / Unconfirmed
GUEST, unregistred user!
类型转换:怎样把一个16进制的字串转换为byte[],请各位大侠帮忙
 
把问题说清楚一点?
是'0A0B0C'转为[10][11][12]呢?
还是'0A0B0C'转为[67][68][69]呀?
 
procedure WTB(dw: WORD;
var b: array of BYTE );
var
tdw: WORD;
begin
tdw := $00ff;
b[0] := (dw and (tdw shl 8))shr 8;
b[1] := (dw and tdw);
end;

你要求的字节顺序是怎样的?如果字是$1234,那么要求b[0]=$12,b[1]=$34,还是
b[0]=$34,b[1]=$12?
 
我想楼主的意思应该是:
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
HexStr: string;
ByteArray: array of Byte;
begin
HexStr := 'AD1E0F2EDEFEAAFF';
SetLength(ByteArray, Length(HexStr) div 2);
for I := 1 to Length(ByteArray)do
ByteArray[I - 1] := StrToInt('$' + HexStr[I*2 - 1] + HexStr[I*2]);
ShowMessage(IntToStr(Length(ByteArray)));
end;
[:D][:D][:D]
 
问题不明,串有什么样的?
 
String s = "f334223a29f";
int len = (int)Math.ceil(s.length()/2.0);
byte[] bs = new byte[len];
for(int index =0;
index < len;
index++){
int endIndex = ((index*2+2)>s.length())?s.length():index*2+2;
bs[index] = (byte)Integer.parseInt(s.substring(index*2,endIndex),16);
for(int i = 0;
i< bs.length;
i++)
System.out.println(""+bs);
output:
-13,52,34,58,41,15
satisfy your requirement?
 
各位大侠,我是把一个字符串使用getBytes()转换为byte[],
再使用Integer.toHexString()把byte[]中得byte转换为String 输出的;
现在返回来输出。该怎么办?
 
顶部