C# 2进制到16进制的转换

本文介绍了一个将Java中的字节转换为16进制字符串的方法。通过使用位运算和16进制字符数组,该方法能有效地将任意字节数据转换为其对应的16进制形式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

    private static String byteHEX(byte ib) {

        char[] Digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A',

                'B', 'C', 'D', 'E', 'F' };

        char[] ob = new char[2];

        ob[0] = Digit[(ib >> 4) & 0X0F];

        ob[1] = Digit[ib & 0X0F];

        String s = new String(ob);

        return s;

    }

解释如下:

       char[] Digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A',

                'B', 'C', 'D', 'E', 'F' };

       //定义16进制的char数组

       char[] ob = new char[2];

    //因为byte为8位0,1的数字,所以表示为16进制应该是2位char

    ob[0] = Digit[(ib >> 4) & 0X0F];

(ib >> 4) & 0x0f:二进制数ib右移4位,这样把高四位放到低四位,然后再与0f做与操作把移位后的高四位清0,得到移位后的低四位,再转换成十进制数,Digit [(b >> 4) & 0x0f]就是取出数组下标数字对应的字符,Digit [b & 0x0f]同理;

举例:

例如:ib=10010011;(ib >> 4) & 0x0f操作后,b=00001001=9,Digit [(b >> 4) & 0x0f]=’9‘;b & 0x0f=00000011=3,Digit [b & 0x0f]=’3‘;因此b对应的十六进制数是93H。转化成string就是“93”

转载于:https://www.cnblogs.com/biman/archive/2006/07/13/450244.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值