python机器语⾔直接⽤⼆进制代码表达指令_偷偷看了点计算机基础,从此学Java犹如开挂!...
⼤家好,我是node哥哥,⼀个被Bug耽误了才艺的程序员。从今天开始,正式带领⼤家从0开始学习Java。⽤⼤⽩话聊技术,边吹⽜逼边讨论原理,让天下没有难学的Java。喜欢的同学可以关注我⼀波,学习的路上互相陪伴,⼀起成长。
python转java代码学习Java之前,我想问⼀个问题,你们觉得有没有必要学习计算机基础?
很多⼈觉得没有必要看那些枯燥晦涩的基础知识,还不如直接从HelloWorld开始,先接触程序,有个印象,代码跑起来,然后再逐步深⼊学习程序的语法,到最后使⽤程序搭建项⽬,也就是实战学习法。
⾸先我不否定这样的学习⽅式,确实对某部分同学来说是⽐较适⽤的,尤其是⼀些着急⼯作的同学,先学会怎么去⽤,⾄于原理,可以以后慢慢去深⼊了解,毕竟没有什么⽐⾯包 更重要。
但是对于我们⼤对数从头开始学习的同学,我还是建议从计算机的⼀些基础⼩知识开始,了解程序设计的思想和常识,这对于我们以后的学习也是⾮常有帮助的。就好⽐盖房⼦,有的⼈盖的是茅草屋,有的⼈盖的是泥⽡屋,⽽有⼈却想着盖⼆层⼩洋楼。基础的深浅程度,直接决定了以后成就的⾼低。
那么现在我们就来简单了解下计算机的⼀些基础⼩知识。
⼀. 机器语⾔的分类
机器语⾔
机器语⾔就是计算机能直接能识别的语⾔,它是直接⽤⼆进制代码指令表达的计算机语⾔。它是由⼀
串0和1组成的代码,有⼀定的位数,并分成若⼲段,各段的编码表⽰不同的含义。例如下⾯就是⼀串简单的机器码:
010*********  // 520
那么很多⼈问,为什么机器码是0和1组成的?
因为机器码需要控制电脑硬件对程序指令做出响应,0代表低电位,1代表⾼电位,这样才能产⽣逻辑电路,就相当于控制开关⼀样,0是关闭,1是打开。
汇编语⾔是⼀种⾯向开发⼈员的语⾔,由于机器语⾔都是0和1,开发⼈员难以直接操控和使⽤,那么就需要使⽤⼀些特殊的符号作为⼆进制码的标记,开发⼈员通过输⼊这些特殊的符号来完成指令下发,让电脑为我们⼯作,这些特殊的符号就是汇编语⾔。计算机不能直接识别汇编语⾔,需要⽤⼀种软件将汇编语⾔翻译成机器语⾔。它与机器语⾔的区别在于指令的表⽰⽅法上,汇编语⾔的主体是汇编指令,相⽐于机器指令,编程⼈员更容易记住。
MOV AX,1234H  //汇编指令: 寄存器AX的内容送到1234H中
101110000011010000010010 //机器指令
⾼级语⾔
⾼级语⾔常见如:c,c++,java,python,php等等。
它更接近于我们平时正常的⼈思维,其最⼤的特点是编写容易,代码可读性好。实现同样的功能,使⽤⾼级语⾔耗时更少,程序代码量更短,更容易阅读。其次,⾼级语⾔是可移植的,也就是说,仅需稍作修改甚⾄不⽤修改,就可将⼀段代码运⾏在不同类型的计算机上。
print('Hello World')  // python版HelloWorld
我们从这个程序可以看出来,⾼级语⾔屏蔽了机器内部指令运⾏细节,我们可以像写作⼀样书写程序,⽽不⽤关⼼语⾔内部的实现细节,这⼤⼤提⾼了我们的开发效率,节约开发成本。
当然,其缺点也很明显,使⽤⾼级语⾔编写的程序运⾏时,需要先将其翻译成低级语⾔计算机才能运⾏它,在翻译过程中可能会产⽣⼀些多余的部分,运⾏效率低些。另外,对硬件的可控性相对于低级语⾔弱些,⽬标代码量较⼤。
⼆. 进制
推荐使⽤在线⼯具进⾏进制转换:
⼆进制
由数字0和1组成,逢⼆进⼀,⽐如机器码就是⼆进制的,是最简单的计算机可读懂的代码,例如0101(表⽰⼗进制数字5)。
⼋进制
由1到7组成的数字串,数字最⼤不会超过7,逢⼋进⼀,例如157(表⽰⼗进制数字111)
⼗进制
我们⽇常使⽤的数字都是⼗进制类型的,逢⼗进⼀,例如  0123456789。
⼗六进制
由1到9,a-f(或者是A-F,分别代表10-15)组成的数字串,数字最⼤不会超过15,其中字母是不区分⼤⼩写的,逢⼗六进⼀,例如
0F83(表⽰⼗进制数3971)
进制转换
1. K进制与⼗进制数的转换
假设有⼀个n+1位的K进制数,它的形式如下:
AnAn-1…A3A2A1A0
则它的⼤⼩为:(也就是对应的我们能看懂的⼗进制数为)
A0 * K^0 + A1 * + An * K^n      //K^n表⽰K的n次⽅
⼆进制数:10101 转换成 ⼗进制数为:21
1*2^4 + 0*2^3 + 1*2^2 + 0*2^1+1*2^0 = 21
2. ⼗进制与k进制的转换
短除法。
从图可以看出,⽤⼗进制数21⼀直除以2,
每次得到的余数倒数就是最后的⼆进制数10101。同样,⼗进制转⼋进制、⼗进制转⼗六进制都是⼀样的套路,⾮常简单。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。