今天小编给大家分享一下C#怎么实现十六进制与十进制相互转换及不同进制表示的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在程序中,十六进制的表示形式通常为字符串;而十进制则为数字整型(本质的内存存储都是01二进制)。数字的进制表示一般使用的不多,通常最大的需求是进制之间的相互转换。C#中提供了内置的转换方法,同时,我们也可以依据不同进制之间的规则自己实现进制之间的转换。对于进制的表示,编程语言基本上都提供了特殊前缀表示不同进制的数字,一般0x
/0X
表示16进制、0o
/0O
表示8进制、0b
/0B
表示2进制,十进制数字则没有特殊前缀,直接输入数字即可。C#中没有对8进制数字的直接表示形式。对于这个几乎用不到的历史遗留的进制,编程中很少会使用。通常比较常用的是2进制和16进制。比如,下面举例的不同进制的数字表示形式:十六进制到十进制的转换可以通过下面的步骤实现:从十六进制数字的最右侧(个位)开始获取每一位的数字获取的数字乘以16^n,n从0开始将相乘后的结果相加到最终值以等值的十进制对应十六进制,比如 A或a作为10,B或b作为11下面的代码使用上面介绍的算法,实现将十六进制字符串转换为十进制数字,通过遍历十六进制的字符得到最后的值。使用正则验证传入的是否是合格的16进制字符串。基本逻辑和介绍的一致。参考文章中给出了更加清晰的逻辑处理,和介绍的处理算法完全逻辑一致,尤其Multiplier的使用,比较巧妙,推荐。代码如下:Convert.ToInt32
的第二个参数可以指定进制数,从而转为32位的10进制int整型。同理,可以根据需要,将2进制、8进制的字符串转换为10进制的int类型。int.Parse(hexStr,System.Globalization.NumberStyles.HexNumber)
第二个参数指定当前为HexNumber数字,实现16转10进制。int.TryParse
同理。实现步骤对应上面16转10进制的过程,代码如下:Convert.ToString(dec, 16)
的第二个参数可以指定要换为的字符串的进制数。它转换的结构是小写表示的16进制,且个位数时为单数,即如果是5,其结果为”5″,如果是F免费云主机域名,其结果为”F”。dec.ToString("X2")
或 dec.ToString("X")
将整型转为16进制。X2表示个位是两位的16进制,比如5表示为”05″,F表示为”0F”。在用Hex
格式表示二进制时很常用,2位16进制FF
正好表示8位一个字节。X表示16进制格式。dec.ToString("x2")
或 dec.ToString("x")
中使用小写x,则转换为对应的小写的16进制字符串,比如15转换为”f”或”0f”。【X
对应为大写】。与.ToString()
方法同样的格式化要求。string.Format("{0:X2}", dec)
或 string.Format("{0:X}",dec)
将整型转为16进制。将decimal_2
分别转换为16进制、8进制、2进制的字符串新建一个简单的Winform项目HEXAndDECInterConvert
,窗体添加从16进制的TextBox输入框转为10进制TextBox输出框、从10进制的TextBox输入框转为16进制TextBox输出框。在输入框的TextChanged中,分别完成进制的转换以上就是“C#怎么实现十六进制与十进制相互转换及不同进制表示”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注百云主机行业资讯频道。
相关推荐: MySQL组提交group commit实例分析
今天小编给大家分享一下MySQL组提交groupcommit实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。以下讨论的前提 是设置MySQ…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。