C#进制转换,字节高8位低8位提取

一、C#中将字节数组转换为16进制字符串

第一种方法:

.ToString("X2") 为C#中的字符串格式控制符

X为     十六进制
2为     每次都是两位数

比如   0x0A ,若没有2,就只会输出0xA 
假设有两个数10和26,正常情况十六进制显示0xA、0x1A,这样看起来不整齐,为了好看,可以指定"X2",这样显示出来就是:0x0A、0x1A。

第二种方法:

  Convert.ToString(st[i],16)

 public static string GetMD5Value(string msg)
        {

            using (MD5 md5 = MD5.Create())
            {
                StringBuilder sb = new StringBuilder();
                //字符串转换为字节数组
                byte[] bts = System.Text.Encoding.UTF8.GetBytes(msg);
                byte[] st = md5.ComputeHash(bts);
                md5.Clear();
                for (int i = 0; i < st.Length; i++)
                {
                    
                    //sb.Append(st[i].ToString("x2"));
                    //字符转换为16进制
                    sb.Append(Convert.ToString(st[i],16));
                }
                return sb.ToString();
            }
        }   

二、进制间相互转换

//十进制转二进制
Convert.ToString(69, 2); //69为被转值
//十进制转八进制
Convert.ToString(69, 8); //69为被转值
//十进制转十六进制
Convert.ToString(69, 16); //69为被转值
//二进制转十进制
Convert.ToInt32(”100111101″, 2); //100111101为被转值
//八进制转十进制
Convert.ToInt32(”76″, 8); //76为被转值
//C# 16进制转换10进制
Convert.ToInt32(”FF”, 16); //FF为被转值

三、提取数据高8位或低8位


            int CRC = 25496;
            string S = Convert.ToString(CRC, 16);//转换为16进制字符串0x6398

            int CrcL = CRC % 256;                //低8位,取余
            int CRCL = CRC & (0XFF);             //取低8位,152

            int CrcH = CRC / 256;                //高8位,除256
            int CRLH = (CRC >> 8) & 0XFF;        //取高8位,99

  • 1
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值