程序员的数学 学习(进制理解)

进制换算:
2335
即是:
2x10^3 + 3x10^2 + 3x10^1 + 5x10^0
即是:
。。。。。+2^2 + 2^1 + 2^0

而10^1
5^1 = 1x2^2 + 0x2^1 + 1x2^0
10^1= 1x2^3 + 0x2^2+ 1x2^01 + 0x2^0
19^1= 1x2^4 + 0x2^3+ 0x2^2+ 1x2^1 + 1x2^1
从上发现相当于可以除几次就进位几次,所以可以用的短除法
即得到短除法计算10 进制转2进制

就是说5的话会进位2次,换句话说就会得到一个2位数但是最后余数还占一位:比如十进制整数19,得到的会是一个5位数
下面的例子更容易理解:

5/2 = 2…1
2/2 = 1…0
1/2 = 1…1

10/2 = 5…0
5/2 = 2…1
2/2=1……0
1/2 = 1…1

19/2=9…1
9/2 = 4……1
4/2 = 2……0
2/2 = 1……0
1/2 = 1…1

所以最后计算的结果就是10011

代码为:

 @Test
    public void test1() {
        int n = 19;
        StringBuilder binary = new StringBuilder();
        while (n != 0) {
//因为是从低位开始的,所以使用insert方法,将字符拼接到原字符前面
            binary.insert(0, n % 2);
            n /= 2;
        }
        System.out.println("binary=" + binary.toString());
    }

电脑为什么要采用二进制计算
主要原因是做一个二进制的电路比较简单。因为二极管有单向导电性,即总处于导通与不导通两种状态之一。若通代表1,不通代表0,则0与1刚好表示出二进制的全部数码。二极管的两个状态:通与不通,决定了由它制出的电脑必然采用二进制。
优点:简单,快捷
缺点:占内存

你可能感兴趣的:(程序与数学)