`
zhsq_java
  • 浏览: 61486 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

byte 和 hex 互转

阅读更多

http://topic.csdn.net/u/20100819/10/62a54e6a-2205-4c5c-8551-007321aebb7a.html?668593488

function ByteToHex(Src: Byte): String;
var
  h, l : Byte;
const
  HC : Array [$00..$0F] of char =
     ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
begin
  h :=Src shr 4;
  l :=Src shl 4;
  l :=l shr 4;
  Result :=HC[h]+HC[l];
end;

function StrToHex(str : String):String; //字符串转换为2位16进制字符串
var
  i : Integer;
begin
  Result :='';
  for i :=1 to Length(str) do
  begin
    Result :=Result +Right('00'+ByteToHex(Ord(str[i])),2);
  end;
end;
//网上流传的这一段貌似有问题
//begin
//  SetLength(Result, 2);
//  asm
//    MOV         EDI, [Result]
//    MOV         EDI, [EDI]
//    MOV         AL, Src
//    MOV         AH, AL          // Save to AH
//    SHR         AL, 4           // Output High 4 Bits
//    ADD         AL, '0'
//    CMP         AL, '9'
//    JBE         @@OutCharLo
//    ADD         AL, 'A'-'9'-1
//@@OutCharLo:
//    AND         AH, $f
//    ADD         AH, '0'
//    CMP         AH, '9'
//    JBE         @@OutChar
//    ADD         AH, 'A'-'9'-1
//@@OutChar:
//    STOSW
//  end;
//end;
分享到:
评论

相关推荐

    hexString与byte互转

    当我们使用蓝牙通信或者其他通信技术,常常需要用到数据之间的转换,此工具则是java收发蓝牙数据间的hexString 与byte之间的相互转化

    PB ,PowerBuilder ,Hex blob , 16进制 blob ,互转

    标题"PB,PowerBuilder,Hex blob,16进制blob,互转"涉及到的是如何在PowerBuilder中将Blob数据转换为16进制字符串,以及反过来将16进制字符串转换回Blob数据。在处理Blob数据时,有时候我们需要将其转换成易于阅读...

    HEX文件转化成Txt文件工具_HEX2Txt.rar

    关于标签,“HEX”和“TXT”表明了工具的主要功能,涉及两种文件格式的互转;“VS2010”则表示开发环境,这意味着这个工具可能包含特定于VS2010的编译设置或者依赖于该版本的.NET Framework。 在压缩包子文件的文件...

    Java中3DES加密解密示例(封装byte数组16进制互转)

    Java 中的 3DES 加密解密示例(封装 byte 数组和 16 进制字符串互转) 在 Java 中,3DES 加密是一种常用的加密算法,它可以将明文数据转换为密文数据,以保护数据的安全性。在本示例中,我们将展示如何使用 3DES ...

    Delphi ASCII与HEX 16进制互转程序.rar

    Delphi 实现ASCII字符与HEX 16进制字符互转程序,互相转换程序,在运行如图所示的窗口中,左侧是ASCII字符,右侧是HEX进制字符,左侧的ASCII输入完成后,点击中间带箭头的按钮,即可完成互相转换,代码基于Delphi7.0...

    Android byte[] 和 String互相转换

    本篇将详细介绍如何在Android中实现这两种数据类型的互转。 ### 一、`byte[]` 转 `String` 在Java和Android中,将字节数组转换为字符串最常用的方法是使用`new String(byte[])`构造函数。此方法会使用平台默认的...

    netty 在java中的字节码转换

    netty通信时经常和底层数据交互,C语言和java的数据类型和范围不同,通信时需要转化或兼容,附件为字节码、进制常用的转换类。

    Base16 java字符串与十六进制互转 js字符串与十六进制互转

    这里我们将深入探讨“Base16”(也称为Hex)编码,以及Java和JavaScript中如何进行字符串与十六进制之间的转换。 Base16是一种简单的二进制到文本的编码方式,它将每个八位字节表示为两个十六进制数字。这种编码...

    Delphi7AES加密解密与JAVA互转(默认128位+ECB+PKCS5Padding+先BASE64再HEX)

    当Delphi和Java之间进行AES加密数据的互转时,关键在于保持一致的加密参数和编码规则。确保在Delphi中设置的密钥、工作模式、填充方式和编码方法与Java端完全相同。这样,加密后的密文可以在两个平台间无缝交换并...

    16进制2进制互转

    byte[] ret = new byte[hex.length() / 2]; for (int i = 0; i ; i++) { int index = digital.indexOf(str[i]); if (i % 2 == 0) { ret[i / 2] |= (byte) (index ); } else { ret[i / 2] |= (byte) (index); ...

    16进制与ASCII互转

    此外,还有如 `hex()` 和 `int()` 函数用于在16进制和整数之间进行转换。 你提到的 "ASCII2Hex-master" 文件可能是包含实现这些转换的源代码的项目。这个项目可能提供了一个简单易用的接口,使得用户无需理解底层的...

    C#byte数组与Image的相互转换实例代码

    C#byte数组与Image的相互转换实例代码 功能需求: 1、把一张图片(png bmp jpeg bmp gif)转换为byte数组存放到数据库。 2、把从数据库读取的byte数组转换为Image对象,赋值给相应的控件显示。 3、从图片byte数组...

    vb编写的16进制与2进制互转源码

    hexOutput.Append(byteValue.ToString("X2")) 'X2表示使用16进制且两位填充 Next Dim hexFileContent As String = hexOutput.ToString() ``` 这段代码读取了名为"file.bin"的二进制文件,然后将每个字节转换为16...

    字符串与16进制数据互转

    int byteValue = Convert.ToInt32(hex.Substring(i, 2), 16); result += Char.ConvertFromUtf32(byteValue); } ``` 这里需要注意的是,16进制字符串通常表示字节的序列,所以如果字符串包含非ASCII字符(如UTF-8...

    汉字转换成16进制,16进制转换成汉字

    提到的"16进制汉字互转.exe"文件可能是一个实用工具,它提供了一个图形化的界面,让用户能够方便地进行汉字和16进制之间的转换。使用这样的工具,无需编程知识,也能轻松完成转换操作。 总之,汉字与16进制之间的...

    IP和十进制数互转,使用Java实现。

    This address has 4 octets where each octet is a single byte (or 8 bits). 1st octet 128 has the binary representation: 10000000 2nd octet 32 has the binary representation: 00100000 3rd octet 10 has ...

    C#浮点数和16进制字节数互相转换

    单精度浮点数(Single)在C#中占用4个字节(32位),按照IEEE 754标准,这32位分为三部分:符号位(1位)、指数部分(8位)和尾数部分(23位)。当我们要将一个浮点数转换为16进制字符串时,实际上是把这32位二进制...

    java 字符串转16进制Ascii

    总结一下,Java中字符串转16进制ASCII涉及的关键点有: 1. `char`类型的字符与ASCII码的转换。 2. 使用`Integer.toHexString()`将ASCII码转换为16进制字符串。 3. 处理Unicode字符时,需要考虑字符集和编码方式。 ...

    Qt基础开发之QString与QByteArray详细用法与区别及QString QByteArray互转

    QByteArray byteHex = byte.toHex(); 输出结果:"313233343536" QByteArray::fromHex()用法: QByteArray byte("31323334"); QByteArray byteFromHex = QByteArray::fromHex(byte); 输出结果:"1234" QByteArray...

    十六进制字符串和数值相互转换

    在计算机科学中,十六进制(Hexadecimal)是一种逢16进1...了解如何在DLL中封装和导出这些函数,可以增强代码的可重用性和互操作性。在实际应用中,根据具体需求,你可能还需要处理大小端序、错误检查等更多复杂情况。

Global site tag (gtag.js) - Google Analytics