我可能会提出这个问题有点错误。我需要用纸和笔以十六进制计算 IPv4 标头校验和。在这个链接http://en.wikipedia.org/wiki/IPv4_header_checksum 在最后一个例子中他们做到了。
我在理解它们如何直接以十六进制计数时有点问题。在纸上做时,如果我得到一个超过 15 的数字,例如 48,我会使用什么提醒,我会写下什么?
任何人都可以解释如何处理这个问题?
谢谢你,很抱歉提出错误的问题,但我现在已经改变了:)
我可能会提出这个问题有点错误。我需要用纸和笔以十六进制计算 IPv4 标头校验和。在这个链接http://en.wikipedia.org/wiki/IPv4_header_checksum 在最后一个例子中他们做到了。
我在理解它们如何直接以十六进制计数时有点问题。在纸上做时,如果我得到一个超过 15 的数字,例如 48,我会使用什么提醒,我会写下什么?
任何人都可以解释如何处理这个问题?
谢谢你,很抱歉提出错误的问题,但我现在已经改变了:)
请参阅http://www.youtube.com/watch?v=UGK8VyV1gLE,它很好地描述了该过程。
以十六进制(以 16 为底)计数就像以十进制(以 10 为底)计数一样,只是当您计数超过 F 时才开始携带余数。
因此,在您的评论示例中,这就像以十进制计数而没有余数:
15
24
---
39
一个简单的真正 HEX 加法是:
11
F
---
20
1 + F = 10 = 1 余数 + 1 = 20
15 over 48 也很简单:
15
48
---
5D
8 + 5 = D 无余数,1 + 4 = 5 无余数
十六进制只是数字的表示。为了让计算机帮助您进行加法,您必须将十六进制表示的数字转换为数字本身,然后进行加法,然后将其转换回来。这不是到二进制的转换,因为二进制也只是一种不同的表示形式。
如果您不希望从十六进制转换,则必须解释为什么不希望进行此转换。
我想这听起来像是一个愚蠢的答案,但这是我能以你写问题的方式给出的最好的答案。
十六进制的加法与十进制的加法完全相同,除了用 16 位而不是 10 位数字。所以实际上,您要问的是如何进行一般加法(包括十进制)。在 dec 中,9 + 1 = 10。在十六进制中,F + 1 = 10。显然,相同的加法规则适用于两者.