十进制的0x10是啥?
Posted
技术标签:
【中文标题】十进制的0x10是啥?【英文标题】:What is 0x10 in decimal?十进制的0x10是什么? 【发布时间】:2010-10-16 02:11:06 【问题描述】:我有以下代码:
SN.get_Chars(5)
SN
是一个字符串,所以这应该是第 5 个字符。好的!
现在我有另一个代码但是:SN.get_Chars(0x10)
我想知道 0x10 是什么?是数字吗?如果是这样,那么十进制是什么?
【问题讨论】:
在谷歌中,输入“0x10 in decimal”。谷歌计算器将为您转换它们 您也可以使用 android 市场上的“Any Base Calculator”来执行此操作:play.google.com/store/apps/details?id=com.ewe.radixcalculator 程序员模式下也可以使用windows计算器! 呃...... 16? 【参考方案1】:0xNNNN
(不一定是四位数字)至少在 C 中表示一个十六进制数(基数为 16,因为在拉丁衍生语言中,'hex' 是 6,而 'dec' 是 10)数字,其中 N
是0
到 9
或 A
到 F
的数字之一(或它们的小写等效项,代表 10 到 15),并且数字中可能有 1 个或多个这些数字。表示它的另一种方式是 NNNN16。
它在计算机世界中非常有用,因为一个十六进制数字代表四位(二进制数字)。这是因为四位,每一个都有两个可能的值,总共为您提供 2 x 2 x 2 x 2
或 16
(24) 个值。换句话说:
_____________________________________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
以 X 为底的数是一个数字,其中每个位置代表 X 的幂的倍数。
在我们人类习惯的以 10 为底的情况下,使用的数字是 0
到 9
,数字 730410 是:
八进制,其中数字为0
到7
。数字 7548 是:
C 中的八进制数字前面有字符 0
,因此 0123
不是 123,而是 (1 * 64) + (2 * 8) + 3,或 83。
二进制,其中数字是0
和1
。数字 10112 是:
以十六进制表示,其中数字为 0
到 9
和 A
到 F
(代表“数字”10
到 15
)。数字 7F2416 是:
你比较简单的数字0x10
,也就是C代表1016的方式,就是:
顺便说一句,不同的数字基数用于许多事情。
如前所述,我们手上有 10 个数字的人使用 base 10。 base 2 被计算机使用,因为用电路表示两个二进制状态相对容易。 base 8 几乎专门用于 UNIX 文件权限,因此每个八进制数字代表二进制权限的 3 元组(读/写/执行)。它还用于基于 C 的语言和 UNIX 实用程序中,用于将二进制字符注入到其他可打印字符的数据流中。 base 16 是一种将 4 位表示为一个数字的便捷方式,尤其是现在大多数架构的字长都是 4 位的倍数。 base 64 用于对邮件进行编码,以便可以仅使用可打印字符发送二进制文件。每个数字代表六个二进制数字,因此您可以将三个 8 位字符打包成四个 6 位数字(文件大小增加 25%,但保证可以不受影响地通过邮件网关)。 作为一个半有用的 sn-p,base 60 来自一些非常古老的文明(巴比伦、苏美尔、美索不达米亚或类似的东西),并且是 60 秒/分钟的分钟/小时,360 度的来源圆,60 分钟(弧),等等 [与计算机行业没有真正的关系,但仍然很有趣]。 作为一个更没用的 sn-p,The Hitchhikers Guide To The Galaxy 中的终极问题和答案是“当你将 6 乘以 9 时你会得到什么?”和“42”。虽然同样说这是因为地球计算机有故障,但其他人认为这是创造者有 13 个手指的证据:-)【讨论】:
+1 表示彻底性和数学课,但不要忘记可怜的旧 base-2 ;-) 我不喜欢权威地谈论我知之甚少的事情。可能是巴比伦人、苏美尔人或美索不达米亚人——据我所知,你也可以说是伊拉克人。我会把它留给历史爱好者(我对古代历史的兴趣是足够的,但并不全面)。 伊拉克并不完全属于“古代历史”,因为它始建于 20 世纪 :-) @EddieD,我的意思是它们都在同一个区域。我想。我的地理比我的历史差得多:-) @Louis:我老了,年轻的学徒,但我不是 5000 岁 :-) 看看en.wikipedia.org/wiki/Sexagesimal - 他们似乎认为这是因为 60 有很多因素。【参考方案2】:0x 表示数字是hexadecimal,或以 16 为基数。
0x10 是 16。
【讨论】:
【参考方案3】:简单的版本是 0x 是一个前缀,表示一个十六进制数,source。
所以你计算的值是前缀之后,在这个例子中是10。
但这不是数字 10。最高有效位 1
表示十六进制值,而 0
表示单位。
所以你要做的简单数学是
0x10
1 * 16 + 0 = 16
注意 - 您使用 16 是因为十六进制是 16 基数。
另一个例子:
0xF7
15 * 16 + 7 = 247
您可以通过搜索十六进制表来获取值列表。例如在这个chart 通知中,F 对应于 15。
【讨论】:
【参考方案4】:这是一个十六进制数,是十进制的 16。
【讨论】:
【参考方案5】:请注意,“10”是该基数中基数的表示:
10 在 base-2 中是 2(十进制)
10 在 base-3 中是 3(十进制)
...
10 是以 10 为底的 10(十进制)
...
10 是 base-16(十六进制)中的 16(十进制)
...
10 是以 1024 为底的 1024(十进制)
...等等
【讨论】:
以上是关于十进制的0x10是啥?的主要内容,如果未能解决你的问题,请参考以下文章
此捆绑包无效 - Info.plist 中索引 327 处的 XML 字符“0x10”无效
python经常使用的十进制16进制字符串字节串之间的转换(长期更新帖)