8.6 Exercises

8.6.1 Converting decimal numbers into base N

  1. Create a conversion function dec2base(x, base) that converts a decimal number x into a positional number of different base (with \(2 \leq\) base \(\leq 10\)). Thus, the dec2base() function provides a complement to base2dec() from the i2ds package:
library(i2ds)
base2dec(11, base = 2)
#> [1] 3
dec2base(3,  base = 2)
#> [1] "11"
  1. Use your dec2base() function to compute the following conversions:
dec2base(100, base =  2)
dec2base(100, base =  3)
dec2base(100, base =  5)
dec2base(100, base =  9)
dec2base(100, base = 10)
  1. Create a brief simulation that samples \(N = 20\) random decimal numbers \(x_i\) and base values \(b_i\) \((2 \leq b_i <= 10)\) and shows that

base2dec(dec2base(\(x_i,\ b_i\)),\(b_i\)) ==\(x_i\)

(i.e., converting a numeric value from decimal notation into a number in base \(b_i\) notation, and back into decimal notation yields the original numeric value).

Solution

Table 8.1: Convert integer values from decimal to base notation, and back to decimal notation.
n_org base n_base n_dec same
7179 10 7179 7179 TRUE
7548 8 16574 7548 TRUE
6252 10 6252 6252 TRUE
3759 6 25223 3759 TRUE
6676 8 15024 6676 TRUE
7605 2 1110110110101 7605 TRUE
3774 2 111010111110 3774 TRUE
4546 5 121141 4546 TRUE
542 6 2302 542 TRUE
9556 9 14087 9556 TRUE
8973 8 21415 8973 TRUE
3390 10 3390 3390 TRUE
5426 6 41042 5426 TRUE
4473 4 1011321 4473 TRUE
995 4 33203 995 TRUE
3116 10 3116 3116 TRUE
1681 8 3221 1681 TRUE
7150 4 1233232 7150 TRUE
890 7 2411 890 TRUE
2248 3 10002021 2248 TRUE

8.6.2 Exercise