正如已经提到的那样,
0x0A
等于十进制的
10
(十)。在许多系统上,这相当于LF(换行符)的ASCII代码,表示新的一行。但是在您的情况下,您使用的是需要传递一个
ULONG
参数的
DisconnectClient
方法。无论您是传递
0xA
还是
10
都没有关系。
在这种情况下,这个数字的意义是指客户端连接的接口。
编辑:再次查看您的代码,您的disconnectClient
函数与MSDN上的不同。如果它是用户定义的方法,则需要检查该方法本身或其文档才能找出0x0A
的含义(尽管可能它只是“真正”的DisconnectClient
的存根,并简单地传递参数)。
理解十六进制
编辑:如果您想知道所有回答者为什么都知道十六进制0x0A
等于十进制10
,请继续阅读:
十六进制数是基于16的(hexa = 6,deca = 10)。我们现在习惯于使用十进制,但历史表明在二进制(基于2)数字变得普遍之前,甚至曾经使用过基于20(法国仍然有quatre-vingt),基于5(俄罗斯)和其他进制。基于16与基于10一样,但现在您不再有10个手指,而是有16个手指。
计算机只能以位为单位进行运算,四位(一个半字节)可以表示0-15。为了更方便地阅读和编写关于位的内容,使用了十六进制表示法。这增加了A-F到无处不在的数字0-9中,其中A等于10,B等于11,一直到F等于15。
在编程语言中,通常使用
x
、
0x
或
&h
(根据编程语言而定)作为十六进制数的标识。与十进制数一样,前导零可以忽略不计,而末尾零则具有明显的含义。
将十六进制转换为十进制
那么,如何将十六进制转换为十进制呢?每个数字应该乘以 16 的幂,而不是十进制的10的幂。虽然有一个通用的简单公式可用于从任何 X 进制到任何 Y 进制的转换,但这里我们将其应用于从 16 进制到 10 进制的转换。
- 获取每个十六进制数位,写下它的十进制版本
- 将每个数字乘以
16^pos
, 其中 pos == 十六进制数中的位置,最右边的位置的值为零
- 将结果相加
例如,数码
0x8B20
变成:
8 * 16^3 = 8 * 4096 = 32768
B * 16^2 = 11 * 256 = 2816
2 * 16^1 = 2 * 16 = 32
0 * 16^0 = 0 * 1 = 0
------- +
35616
虽然手动计算有点繁琐,但希望你能明白这个过程。如果你使用的是 Windows,在“运行”窗口或搜索框中键入“Calc”,然后单击“查看”>“科学型”。现在你可以输入十六进制数(按 F5),并在十进制(F6)、八进制(F7)和二进制(F8)之间切换。
关于数字及其基数方面还有很多要说的,但如果您需要更多信息,建议您查看数学论坛FAQ或维基百科(更为通用)。想要在多种进制之间转换,请尝试这个在线X进制计算器。
更新:添加了解析和转换十六进制数的部分,认为这是相关的;-)