C# 将字节数组,数值和十六进制字符串,数值和二进制字符串相互转换
byte[] bs = new byte[32]; Random random = new Random(); random.NextBytes(bs); //给字节数组填充随字节 string hex = BitConverter.ToString(bs); //将字节数组转成十六进制字符串,默认-分割 Console.WriteLine(hex); var bs2 = Array.ConvertAll(hex.Split('-'), p => Convert.ToByte(p, 16)); //将-分割的十六进制字符串转成字节数组 Console.WriteLine(bs.SequenceEqual(bs2)); //对比转换后的数据是否相等 int num = 1234567890; Console.WriteLine("0x" + num.ToString("x")); //将数值转成十六进制,x小写时得到的字符串字母小写 var hex2 = num.ToString("X"); Console.WriteLine("0x" + hex2); //将数值转成十六进制,x大写时得到的字符串字母大写 Console.WriteLine("0x" + num.ToString("X10")); //将数据转成十六进制,不足10位,补零,超过不影响 var num2 = Convert.ToInt32(hex2, 16); //将十六进制字符串转成十进制数值 Console.WriteLine(num == num2); //对比
数值和二进制字符串的相互转换
int num = 1; num = num | 0x80; //0x80=128=0b10000000 Console.WriteLine(num); var binStr = Convert.ToString(num, 2).PadLeft(8, '0'); //数值转二进制字符串 Console.WriteLine(binStr); int b = Convert.ToInt32(binStr, 2); //二进制字符串转数值 Console.WriteLine(b); Console.WriteLine((sbyte)b); var num1 = 0b10000001; //C#中可以以二进制的形式声明数值 num1 = 0b1000_0001; //也可以4位加一个_,方便识别 var num2 = 0x81; //可以以十六进制的形式声明数值 Console.WriteLine(num1); Console.WriteLine(num2); Console.WriteLine(num1 == num2); var num3 = 0xFF_81_FF; //十六进制也可以用下划线分割方便识别 Console.WriteLine(num3);
标签:
C#学习笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~