C# 之 二进制的简单使用
【摘要】 C# 之 二进制的简单使用
想在C#中使用二进制座位一组变量的存储,,,
举个栗子:有A,B,C,D 四个变量作为bool值要使用,当要和服务器做交互的时候发现四个变量每个值的状态都要传递,若不想每次传递四个值,而又要用一个值表示四种状态,这时要怎么做呢?
这时和服务器约定好,A,B,C,D, 分别用 1,10,100,1000 表示,,,则当我给服务器传递的...
C# 之 二进制的简单使用
想在C#中使用二进制座位一组变量的存储,,,
举个栗子:有A,B,C,D 四个变量作为bool值要使用,当要和服务器做交互的时候发现四个变量每个值的状态都要传递,若不想每次传递四个值,而又要用一个值表示四种状态,这时要怎么做呢?
这时和服务器约定好,A,B,C,D, 分别用 1,10,100,1000 表示,,,则当我给服务器传递的时候,只需要一个四位数的字符串进行传递就可以了,,,(如:传递“1011”,则表示A,C,D为True,B为False),那么服务器接到我这字符串要怎么解析呢,,这就用到了,二进制数的运算,将接收到的值和之前约定好的值做 与(&)运算,若结果不等于0,则说明此值为真,反之为假。【如:1101 & 1 != 0,则A为真,1101 & 10 = 0,则B为假】
后来发现这个想法有点傻,如果有这个需求的话,我们完全可以通过分解字符串来处理这个问题,1为真,0为假,也许会更方便些,,需要做的是两面解析的时候一一对应就可以了。
下面列举了些C#中的进制转换,有复习学习了一遍
class Program { static void Main(string[] args) { string bstr = "00000010"; string bstr1 = "00000000"; byte b = Convert.ToByte(bstr, 2); byte b1 = Convert.ToByte(bstr1, 2); Console.WriteLine("字符串'00000010'转二进制 :" + b); //二进制之间运算 Console.WriteLine("00000010 | 00000000: " + (b | b1)); Console.WriteLine("00000010 & 00000000: " + (b & b1)); //十进制转二进制 Console.WriteLine("64 --> 十进制转二进制: " + Convert.ToString(64, 2)); //十进制转八进制 Console.WriteLine("64 --> 十进制转八进制: " + Convert.ToString(64, 8)); //十进制转十六进制 Console.WriteLine("64 --> 十进制转十六进制: " + Convert.ToString(64, 16)); //二进制转十进制 Console.WriteLine("00000100 --> 二进制转十进制: " + Convert.ToInt32("00000100", 2)); //八进制转十进制 Console.WriteLine("64 --> 八进制转十进制:" + Convert.ToInt32("64", 8)); //十六进制转十进制 Console.WriteLine("FF --> 十六进制转十进制: " + Convert.ToInt32("FF", 16)); Console.ReadKey(); } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
相关链接:C# 中的类型转换(Convert类)
文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。
原文链接:czhenya.blog.csdn.net/article/details/93862383
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)