Java学习之计算机基础(一)

阅读本文大概需要 4 分钟

想要开始学习Java开发,需要掌握一些必要的计算机基础。如果你是计算机专业的人或者已经学过类似的课程,可以跳过这篇文章的阅读。计算机基础课程有很多,小编在大学里学过的课程就有:计算机组成原理、计算机网络、编译原理、数据结构等。当然这里只会对一些简单的知识进行介绍,如果对这些课程感兴趣的,可以去网上找一些资料,也可以上中国大学幕课网上进行学习。中国大学幕课网上的视频目前都是免费的,推荐(免费打广告)。

一、机器语言分类

机器语言

机器语言说白了就是计算机能识别的语言,它是直接用二进制代码指令表达的计算机语言。指令是用0和1组成的一串代码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义。这里的0和1组成的一串代码也就是后面要介绍的二进制数。

汇编语言

汇编语言是使用一些特殊的符号来代替机器语言的二进制码,计算机不能直接识别,需要用一种软件将汇编语言翻译成机器语言。它与机器语言的区别在于指令的表示方法上,汇编语言的主体是汇编指令,相比于机器指令,编程人员更容易记住。

//机器指令与汇编指令示例,来源于百度百科:汇编语言
//操作:寄存器BX的内容送到AX中
1000100111011000 //机器指令
mov ax,bx //汇编指令

高级语言

我们将要学习的JAVA就是一种高级语言,它的语法更接近于普通英语,它是使用类普通英语来编写源代码,但是这种代码计算机不能直接识别,需要通过编译器将源代码翻译成计算机直接识别的机器语言,之后再由计算机执行。除了JAVA还有C,C++等也是高级语言。

二、进制介绍

二进制、八进制与十六进制

二进制:由0,1组成的数字串,数字最大不会超过1。

八进制:由1到7组成的数字串,数字最大不会超过7。

十六进制:由1到9,a-f(或者是A-F,分别代表10-15)组成的数字串,数字最大不会超过15。其中字母是不区分大小写的。

进制的计算与转换

进制的计算与转换通常是涉及的是K(K!=10)进制与十进制的转换、k进制之间的相互转换。公式如下:

1. K进制与十进制数的转换

假设有一个n+1位的K进制数,它的形式如下:

AnAn-1...A3A2A1A0

则它的大小为:(也就是对应的我们能看懂的十进制数为)

A0 * K^0 + A1 * K^1....+ An * K^n //K^0表示K的0次方

2. 十进制与k进制的转换:短除法

给定一个整数N与进制K,那么N可表示成以下形式:

N = A0 * K^0 + A1 * K^1 + A2 * K^2 + ... + An * K^n
 = A0 + K(A1 + A2 * K^1 + ... + An * K^(n-1))

N除以K所得到的余数是A0,商是A1...那一坨,将再个商再除以K,就得到余数为A1,然后将新得到的商再除以K,得到A2,以此就能依次求得A0,A1...An。这样最终得到的K进制数就是AnAn-1An-2...A2A1A0。

3. 二进制与八进制和十六进制之间转换的快捷方法

因为8是2的3次方,16是2的4次方,所以这之间的转换存在一种快捷方法。以2转8示例,如下图所示,将2进制从低位到高位,每3个一组,如果是十六进制就每4个一组,高位不足3位的补0,然后将每组依次转换成对应的十进制,得到的结果就是对应的8进制或者16进制。

Java学习之计算机基础(一)

同样,如果是8进制或者是16进制转2进制也是一样的,将8进制数从低位开始,将每个数当成十进制数,依次转为对应的2进制,如果不足3位(16进制是4位),高位补0即可。也就是上图的一个逆序过程。比较简单,这里便不再赘述。

上一篇:gulp与webpack的区别


下一篇:初学web开发——怎么解决无法找到路径的问题