C# 字节数组和十六进制字符串之间转换的另类写法

今天从http://www.cnblogs.com/NanaLich/archive/2012/05/24/2516860.html看到的,记录下来

主要是XmlSerializationReader和XmlSerializationWriter两个抽象类中包含了很多受保护的方法,其中比较有用的就是byte[]和hexString的转换,分析源码发现是由两个内部类来实现的:BinHexEncoder和BinHexDecoder,看名字就非常清楚了,专门用来处理byte[]和hex的转换的,至于为何仅仅是内部类,还不清楚原因。

     class dummyWriter : XmlSerializationWriter
        {
            protected override void InitCallbacks() { }

            public static string BytesToHex(byte[] bin)
            {
                return FromByteArrayHex(bin);
            }
        }

        class dummyReader : XmlSerializationReader
        {
            protected override void InitCallbacks() { }
            protected override void InitIDs() { }

            public static byte[] HexToBytes(string hex)
            {
                return ToByteArrayHex(hex);
            }
        }

  

时间: 2024-10-17 18:27:08

C# 字节数组和十六进制字符串之间转换的另类写法的相关文章

将字节数组转换为十六进制字符串

/**     * 将字节数组转换为十六进制字符串     *      * @param byteArray     * @return     */    private static String byteToStr(byte[] byteArray) {        String strDigest = "";        for (int i = 0; i < byteArray.length; i++) {            strDigest += byte

Java中二进制、十进制、十六进制及ASCII码与String及字节数组与十六进制之间的转换

public class DigitalTrans { /** * 数字字符串转ASCII码字符串 * * @param String * 字符串 * @return ASCII字符串 */ public static String StringToAsciiString(String content) { String result = ""; int max = content.length(); for (int i = 0; i < max; i++) { char c

【转】Javabyte[]数组和十六进制String之间的转换Util------包含案例和代码

原文网址:http://blog.csdn.net/caijunjun1006/article/details/11740223 Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果new String(H) + new String(L)

Java学习篇之---byte与十六进制字符串之间互转

byte与十六进制字符串之间互转 byte,字节类型,占用8bit空间,可用8位2进制数表示:十六进制,每位占有4bit空间,可用4位2进制数表示. 我们可以把每个byte类型转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果. 即byte用十六进制表示只占2位. 同理,相反的转换也是将两个16进制字符转换成一个byte. 根据以上原理,我们就可以将byte[] 数组转换为16进制字符串了,当然也可以将1

C#中字节数组(byte[])和字符串相互转换

转换过程主要使用到System.Text.Encoding命名空间下的类 1. 字符串转换成字节数组byte[]: string str = "This is test string"; byte[] byteArray = System.Text.Encoding.Default.GetBytes(str); 2.字节数组换成字符串: byte[] byteArray = 通过某种方式获取到的字节数组 string str = System.Text.Encoding.Default

C#-----字节数组(byte[])和字符串相互转换

   Encoding类  表示字符编码 1.字符串转换成字节数组byte[] using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FileStreamTest { class Program { static void Main(string[] args) {

byte[]数组与十六进制字符串与字符串的互相转换 ——转载

字符串转换成十六进制字符串方法1: /**      * 字符串转换成十六进制字符串     */      public static String str2HexStr(String str) {          char[] chars = "0123456789ABCDEF".toCharArray();          StringBuilder sb = new StringBuilder("");        byte[] bs = str.ge

Java文件与io——字节数组流数据流字符串流

字节数组流 ByteArrayInputStream:包含一个内部缓冲区,该缓冲区包含从流中读取的字节.内部计数器跟踪read方法要提供的下一个字节.关闭ByteArrayInputStream无效.此类中的方法在关闭此流后仍可被调用,而不会产生任何IOException. ByteArrayOutputStream:此类中实现了一个输出流.其中的数据被写入一个byte数组.缓冲区会随着数据的不断写入而自动增长.可使用toByteArray()和toString()获取数据.关闭ByteArra

在C++中关于颜色值和十六进制字符串之间的转换

在C++中颜色值一般是用uint(无符号整数)来表示的,但将颜色保存成文本(JSON或XML)时,一般会用十六进制表示,即0xff0000等样式, 那么在读取颜色的时候该如何处理呢?可以参考以下代码: #include <stdio.h> int main() { char szValue[] = "0xff0000"; char ch[32]; int nValude = 0; sscanf(szValue,"%x",&nValude); //