问个基础问题byte类型

禁用F3 2021-04-06 07:46:32
写了这么多年的程序,byte这个类型很少用。最近老写这个类型, 一个byte是有8位,在c#里面如何获取这8位的数据。如何进行移位呢?
...全文
544 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
#region 将十六进制字节字符串转换成字节数组 内容不变 public static byte[] HexStringToByteArray(string strHexString,int spacebz) { strHexString = strHexString.Replace(" ", ""); strHexString = strHexString.Replace("\r", ""); strHexString = strHexString.Replace("\n", ""); int len = strHexString.Length; if ((len % 2) != 0) strHexString = strHexString.Substring(0, strHexString.Length - 1); int byteLen = len / 2; byte[] bytes = new byte[byteLen]; try { for (int i = 0; i < byteLen; i++) { bytes[i] = Convert.ToByte(strHexString.Substring(i * 2, 2), 16); } return bytes; } catch { return bytes; } } #endregion
  • 打赏
  • 举报
回复
哎呀哇 2021-04-12
引用 3 楼 禁用F3 的回复:
[quote=引用 1 楼 Bridge_go 的回复:]获取可以用 convert.tostring(b,2) 左右移可以用 << ,>>
谢谢 如:0101 1101,我要把最后一位1移动到第8位上,然后2至7全部往右移。这个要怎么做呢? 变为: 原如: 0101 1101 移动后: 1101 1100[/quote] 头尾对调? private byte test(byte b) { byte b1=b,b2=b,b3=b; return (b1&0x7E)+(b2>>7)+(b3<<7); }
  • 打赏
  • 举报
回复
美丽海洋 2021-04-12
’与‘或是‘或’一下 记录下来 移动完成再‘与’上去
  • 打赏
  • 举报
回复
禁用F3 2021-04-11
引用 1 楼 Bridge_go 的回复:
获取可以用 convert.tostring(b,2) 左右移可以用 << ,>>
谢谢 如:0101 1101,我要把最后一位1移动到第8位上,然后2至7全部往右移。这个要怎么做呢? 变为: 原如: 0101 1101 移动后: 1101 1100
  • 打赏
  • 举报
回复
much0726 2021-04-07
private static byte[] strToToHexByte(string hexString)
        {
            hexString = hexString.Replace(" ", "");
            if ((hexString.Length % 2) != 0)
                hexString += " ";
            byte[] returnBytes = new byte[hexString.Length / 2];
            for (int i = 0; i < returnBytes.Length; i++)
                returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
            return returnBytes;
        }
获取到byte 的数组后,*2 就是 >> 1 /2 就是 << 1
  • 打赏
  • 举报
回复
Bridge_go 2021-04-07
获取可以用 convert.tostring(b,2) 左右移可以用 << ,>>
  • 打赏
  • 举报
回复
相关推荐
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2021-04-06 07:46
社区公告

让您成为最强悍的C#开发者