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

 

    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];

    //因为byte801的数字,所以表示为16进制应该是2char

    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操作后,b000010019Digit [(b >> 4) & 0x0f]’9‘b & 0x0f000000113Digit [b & 0x0f]’3‘;因此b对应的十六进制数是93H。转化成string就是“93

posted on 2006-07-13 23:07 一夜分析 阅读(1262) 评论(5) 编辑 收藏

评论

#1楼  回复 引用 查看   

2007-02-25 21:54 | 宗瑞朋(POPO)      

#2楼  回复 引用 查看   

你乱七八糟的搞的是什么东西?
多看看SDK把!
Convert.ToString(10,2);
Convert.ToString(10,8);
Convert.ToString(10,16);


2007-02-25 21:57 | 宗瑞朋(POPO)      

#3楼  回复 引用   

楼上的真肤浅
2008-02-12 15:04 | zeal[未注册用户]

#4楼  回复 引用   

#2楼 是SB 鉴定完毕
2008-06-16 15:24 | #2楼 是S B[未注册用户]

#5楼  回复 引用 查看   

@宗瑞朋(POPO)
确实肤浅
2009-05-04 17:04 | xland      

导航

<2006年7月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

公告

昵称:一夜分析
园龄:5年7个月
粉丝:0
关注:0

搜索

 
 

常用链接

随笔分类

随笔档案

.NET

最新评论