什么是十进制的0x10?

时间:2009-03-28 05:33:05

标签: c# numbers hex

我有以下代码:

SN.get_Chars(5)

SN是一个字符串,所以这应该给出第5个字符。 OK!

现在我有另一个代码,但是:SN.get_Chars(0x10)

我想知道0x10是什么?这是一个数字吗?如果是这样,那么十进制表示法是什么?

5 个答案:

答案 0 :(得分:86)

0xNNNN(不一定是四位数)在C中至少表示十六进制(base-16因为'hex'是6而'dec'在拉丁语派生语言中是10)数字,其中{{ 1}}是N09A之间的数字之一(或者它们的小写等价物,代表10到15),并且可能有1个或者更多这些数字。表示它的另一种方式是NNNN 16

它在计算机领域非常有用,因为单个十六进制数字代表四位(二进制数字)。这是因为四个位,每个位有两个可能的值,总共给出F2 x 2 x 2 x 2(2 4 )值。换句话说:

16

base-X数是一个数字,其中每个位置代表X的幂的倍数。


在我们人类习惯的基数10中,使用的数字是 _____________________________________bits____________________________________ / \ +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | bF | bE | bD | bC | bB | bA | b9 | b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ \_________________/ \_________________/ \_________________/ \_________________/ Hex digit Hex digit Hex digit Hex digit 0,数字7304 10 是:

  • (7×10 3 )= 7000 10 ;加
  • (3×10 2 )= 300 10 ;加
  • (0×10 1 )= 0 10 ;加
  • (4×10 0 )= 4 10 ;等于7304。

在八进制中,数字为90。数字754 8 是:

  • (7×8 2 )= 448 10 ;加
  • (5×8 1 )= 40 10 ;加
  • (4×8 0 )= 4 10 ;等于492 10

C中的八进制数字前面有字符7,因此0不是123,而是(1 * 64)+(2 * 8)+ 3或83.


二进制,数字为01230。数字1011 2 是:

  • (1×2 3 )= 8 10 ;加
  • (0 x 2 2 )= 0 10 ;加
  • (1 x 2 1 )= 2 10 ;加
  • (1 x 2 0 )= 1 10 ;等于11 10

以十六进制表示,其中数字为109A(代表“数字”F到{{1} })。数字7F24 16 是:

  • (7 x 16 3 )= 28672 10 ;加
  • (F x 16 2 )= 3840 10 ;加
  • (2 x 16 1 )= 32 10 ;加
  • (4×16 0 )= 4 10 ;等于32548 10

你的相对简单的数字10,就是C代表10 16 的方式,只是:

  • (1 x 16 1 )= 16 10 ;加
  • (0 x 16 0 )= 0 10 ;等于16 10

顺便说一下,数字的不同基数用于很多事情。

  • 如前所述,使用10号基座,我们的手上有10位数字。
  • base 2由计算机使用,因为相对容易用电路表示两个二进制状态。
  • base 8几乎专门用于UNIX文件权限,因此每个八进制数字代表3元组的二进制权限(读/写/执行)。它还用于基于C语言和UNIX实用程序,以将二进制字符注入其他可打印字符的数据流中。
  • base 16是一种向数字表示四位的便捷方式,特别是现在大多数架构的字大小是四位的倍数。
  • base 64用于编码邮件,因此可以仅使用可打印字符发送二进制文件。每个数字代表六个二进制数字,因此您可以将三个八位字符打包成四个六位数字(文件大小增加25%,但保证不会触及邮件网关)。
  • 作为一个半有用的片段,基地60来自一些非常古老的文明(巴比伦,苏美尔,美索不达米亚或类似的东西),并且是分钟/小时60秒/分钟,360度一圈的来源, 60分钟(弧度)在一定程度上等等[与计算机行业没有关系,但仍然很有趣]。
  • 作为一个更不实用的片段,The Hitchhikers Guide To The Galaxy中的最终问题和答案是“当你将6乘以9时会得到什么?”和“42”。虽然同样的说这是因为地球计算机有问题,其他人认为它是创造者有13个手指的证据: - )

答案 1 :(得分:43)

0x表示数字为hexadecimal或16。

0x10是16。

答案 2 :(得分:3)

这是一个十六进制数,是16位小数。

答案 3 :(得分:3)

请注意,'10'是该基数中基数的表示:

10是2(<十进制)in base-2

10是3(十进制)in base-3

...

10是10(十进制)in base-10

...

10是16(十六进制)16(十六进制)

...

10是1024(十进制)in base-1024

......等等

答案 4 :(得分:1)

简单版本是0x是表示十六进制数字source的前缀。

因此,您在前缀后计算的值是,在本例中为10。

但这不是数字10.最重要的位1表示十六进制值,而0表示单位。

所以你要做的简单数学就是

<强> 0x10的

1 * 16 + 0 = 16

注意 - 你使用16因为hex是16的基础。

另一个例子:

<强> 0xF7

15 * 16 + 7 = 247

您可以通过搜索十六进制表来获取值列表。例如,在此chart通知中,F对应于15。