开发者

Converting between numbering systems

I'm trying to understand the reason for a rule when converting. I'm sure there must be a simple explanation, but I can't seem to wrap my head around it. Appreciate any help!

Converting from base10 to any other base is done like this:

number / desiredBase = number + remainder

You do this until number = 0.

But a开发者_StackOverflow中文版fter all of the calculations, you have to take all the remainders upside down. I don't understand why.

For example: base10 number to base2

11 / 2 = 5 + 1
5 / 2  = 2 + 1
2 / 2  = 1 + 0
1 / 2  = 0 + 1

Why is the correct answer: 1011 and not 1101 ?

I know it's a little petty, but it would really help me remember better if I could understand this.


Think of the same in decimal system, even if it doesn't make that much sense to actually do the math in this case :)

1234 / 10 = 123 | 4
123 / 10  = 12  | 3
12 / 10   = 1   | 2
1 / 10    = 0   | 1

Every time you divide, you strip the least significant digit, so the first result, is the least significant result -- digit on the right.


Because 11 =

1 * 2 ^ 3 + 0 * 2 ^ 2 + 1 * 2 ^ 1 + 1 * 2 ^ 0 (1011)

and not

1 * 2 ^ 3 + 1 * 2 ^ 2 + 0 * 2 ^ 1 + 1 * 2 ^ 0 (1101)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜