C# 16进制转10进制

在编程调试过程中,一个uintReturnValue等于536870914的值在判断等于0x20000002时意外进入逻辑。原因是未意识到16进制和10进制之间的转换。示例代码展示了如何在10进制和16进制之间转换,解释了这种情况的发生。
摘要由CSDN通过智能技术生成

昨天小编在调试的时候出现了这么个判断

uint ReturnValue=536870914;
if(ReturnValue==0x20000002)
{
   //判断逻辑
}

ReturnValue为536870914,和0x20000002完全不相同的两个值最后却进入了判断,小编不太明白了,随后问了圈里的大神,这种做法能实现的原因就是16进制和10进制的转换

private static void Get16to10()
{
	int num10=536870914;
	string hex=Convert.ToString(num10,16);//hex结果为20000002
	string num16="0x20000002";
	int hex2=Convert.ToInt32(num16,16);//hex2结果为536870914
}

也就是说,在没有经过转换的时候16进制和10进制可能存在上述小编遇到的情况

穷的时候最上进的做法就是努力赚钱。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值