昨天小编在调试的时候出现了这么个判断
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进制可能存在上述小编遇到的情况
穷的时候最上进的做法就是努力赚钱。