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进制。
同样,如果是8进制或者是16进制转2进制也是一样的,将8进制数从低位开始,将每个数当成十进制数,依次转为对应的2进制,如果不足3位(16进制是4位),高位补0即可。也就是上图的一个逆序过程。比较简单,这里便不再赘述。
Java学习之计算机基础(一)的更多相关文章
- Java学习1——计算机基础知识
本文包含了一些计算机基础知识:计算机组成:Windows常用快捷键:DOS常用命令:计算机语言发展史.
- Java学习之计算机基础(二)
今天主要介绍原码.反码与补码的知识.了解原码.反码与补码的知识,可以帮助我们更好地理解在计算机内部是如何进行运算的,同时对于后面更好地学习和理解Java基本数据类型及其范围打下基础. 背景知识: 在计 ...
- [Java 教程 00] 计算机基础
前言 我想,来到这的朋友肯定是想学习JAVA或者想要进入IT这个行业的.考虑到大家的基础可能不一样,有些人可能还是用着新买的电脑,为了让大家在后续的学习中更加顺畅.在学习一门全新的计算机语言之前,我需 ...
- Java学习笔记之---基础语法
Java学习笔记之---基础语法 一. Java中的命名规范 (一)包名 由多个单词组成时,所有字母小写(例如:onetwo) (二)类名和接口 由多个单词组成时,所有单词首字母大写(例如:OneTw ...
- Python学习 之 计算机基础
第一章 计算机基础 1.1 硬件 计算机基本的硬件由:CPU / 内存 / 主板 / 硬盘 / 网卡 / 显卡 等组成,只有硬件但硬件之间无法进行交流和通信 1.2 操作系统 操作系统用于协同或控制硬 ...
- Java学习之旅基础知识篇:数据类型及流程控制
经过开篇对Java运行机制及相关环境搭建,本篇主要讨论Java程序开发的基础知识点,我简单的梳理一下.在讲解数据类型之前,我顺便提及一下Java注释:单行注释.多行注释以及文档注释,这里重点强调文档注 ...
- Python学习之计算机基础
计算机基础: (1)计算机俗称电脑,是现代用于高速计算的电子计算器,可以进行数值计算也可以进行逻辑计算,还有存储记忆功能.是能够按照程序运行,自动,高速处理海量数据的现代化智能 电子设备. (2)物理 ...
- java学习笔记之基础篇
java选择语句之switch //switch可以用于等值判断 switch (e) //int ,或则可以自动转化成int 的类型,(byte char short)枚举jdk 7中可以防止字 ...
- #Java学习之路——基础阶段二(第九篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
随机推荐
- PyQt5安装目录中找不到designer.exe与pyrcc5.exe
我安装的是PyQt5的5.9版本,在安装目录下找不到designer.exe文件.在摸索一段后发现5.9版本对库文件和相关的开发工具是分开发布的.QtDesigner是在pyqt5-tools的包里. ...
- [板子]Floyd&Dijkstra
谨以此笔记记录jjw高三党四个月学习NOI的历程..如转载请标记出处 Floyd算法: 默认是业界最短路最简单的写法,并且只有五行.时间复杂度为O(N3),空间复杂度为O(N2). ;k<=n; ...
- 2016 ICPC总结
2016 ICPC总结 九月份开学,开始知识点的补充,刚开始的几周都在刷acmsteps,十月开始进行专题性的学习,首先进行的数据结构,给自己定的计划,十一月前看完数据结构,刚开始的时候看的都是以前的 ...
- SSH框架的多表查询和增删查改 (方法一)上
原创作品,允许转载,转载时请务必标明作者信息和声明本文章==> http://www.cnblogs.com/zhu520/p/7772823.html 因为最近在做Android 练习的 ...
- C 程序实现密码隐秘输入 linux系统可执行
读写用户输入,屏幕不回显 char *getpass( const char *prompt); getpass用于从键盘读取用户输入,但屏幕不回显. 参数prompt为屏幕提示字符. 函数返回值为用 ...
- mysql 运维常见操作
初始安装并赋予密码: [root@Alinx html]# yum install -y mysql mysql-server #安装mysql可与 ...
- robotframework自动化系列:修改流程
在上一小节中,新增流程操作已经完成.那么接下来就是修改的流程操作了,对于一个页面的修改如何操作呢? 针对修改修改操作是在一个已经存在的账号直接修改还是新添加一个账号再修改呢?从用例设计健壮性出发,我们 ...
- c#中获取路径方法
要在c#中获取路径有好多方法,一般常用的有以下五种: //获取应用程序的当前工作目录. String path1 = System.IO.Directory.GetCurrentDirectory() ...
- JS--我发现,原来你是这样的JS:面向对象编程OOP[3]--(JS继承)
一.面向对象编程(继承) 这篇博客是面向对象编程的第三篇,JS继承.继承顾名思义,就是获取父辈的各种"财产"(属性和方法). 怎么实现继承? 我们的JavaScript比较特别了, ...
- [转载] zookeeper工作原理、安装配置、工具命令简介
转载自http://www.cnblogs.com/kunpengit/p/4045334.html 1 Zookeeper简介Zookeeper 是分布式服务框架,主要是用来解决分布式应用中经常遇到 ...