十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
很高兴回答你的问题
网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了河北免费建站欢迎大家使用!
希望对你有帮助
Java实现十进制转换二进制的一段代码0
1.复制代码package work;
2.import java.util.*;
3.public class jinzhi{
4.public static void main(String[]args){
5.Scanner input=new Scanner(System.in);
6.int num; //声明一个num变量用来存贮获取键盘输入的数值
7.int[] tnum=new int[10]; //声明一个数组,用来存贮二进制的每一位数字
8.System.out.print(\"请输入一个100以内的整数:\");
9.num=input.nextInt(); //从键盘获取数值
..
.. /*循环,用来检测输入的数值是否大于100*/
while(num100){
System.out.print(\"数字不能大于100!重新输入:\");
num=input.nextInt();
}
/*循环结束*/
int n=num; //声明n变量用并赋值输入的值
int x=0; //声明x变量,用来控制数组
/*循环,用来计算十进制转换为二进制数后的每一位*/
while(n=1){
tnum[x]=n%2; //将结果逐一存贮在数组内
n=n/2;
x++;
}
/*循环结束*/
System.out.print(num+\"转换成二进制是:\");
x--; //这里x变量需要“--”才能与数组标签匹配
/*for循环控制数组序列反转输出,从后往前*/
for(int i=x;i=0;i--){
System.out.print(tnum[i]);
}
/*循环结束*/
}
}
稍微修改了一下:
import java.math.BigInteger;
import java.lang.Math;
public class HardWork {
public static void main(String args[]) {
double L;
double m;
L=Math.log(31)*10000;
m= 15.5*(Math.pow(2,L)-1);
String a =String.valueOf((int)L);//输入数值
BigInteger src = new BigInteger(a);
System.out.println(src.toString(2));
System.out.println(L);
System.out.println(m);
}
}
运行测试:
1000011000100011
34339.872044851465
Infinity
java中的JVM是能够在计算机CPU上执行的二进制代码。
java的执行过程
Java代码需要经过编译和解释两个步骤,才在能在平台上运行。首先java语言的编译器,帮java代码编译成class的字节码,之后通过java虚拟机(JVM)来解释执行。
java代码的编译
java代码是如何编译的?
首先编译的解释:把用高级程序设计语言书写的源程序,翻译成等价的计算机汇编语言或机器语言书写的目标程序的翻译程序。编译的具体过程,可以看看《编译原理》相关的书籍。
其实java的编译过程,和通常c/c++还是不同的。
java编译后的字节码文件格式主要分为两部分:常量池和方法字节码。常量池记录的是代码出现过的所有token(类名,成员变量名等等)以及符号引用(方法引用,成员变量引用等等);方法字节码放的是类中各个方法的字节码。
Java编译器却不将对变量和方法的引用编译为数值引用,也不确定程序执行过程中的内存布局,而是将些符号引用信息保留在字节码中,由解释器在运行过程中创立内存布局,然后再通过查表来确定一个方法所在的地址,这样就有效地保证了java的可移植性和安全性。
c/c++的编译,当C编译器编译生成一个对象的代码时,该代码是为在某一特定硬件平台运行而生成的。因此在编译过程中,编译程序通过查表将所有对符号的引用转换为特定的内存偏移量,以保证程序运行。
java虚拟机(JVM)
简单的可以这样理解它的功能:就是将java编译之后的字节码,解释成cpu能够执行的二进制代码。
JVM是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM 的主要工作是解释自己的指令集(即字节码)并映射到本地的 CPU 的指令集或 OS 的系统调用。Java语言是跨平台运行的,其实就是不同的操作系统,使用不同的JVM映射规则,让其与操作系统无关,完成了跨平台性。JVM 对上层的 Java 源文件是不关心的,它关注的只是由源文件生成的类文件( class file)。类文件的组成包括 JVM 指令集,符号表以及一些补助信息。
java虚拟机工作的原理,可以自己找一下网上的资料。大家还需要思考的问题,jvm的内存、jvm的垃圾回收(GC)、Android的朋友还要区分(Dalvik 和标准 Java 虚拟机JVM)的区别。
总结:
java代码编译之后,可以直接运行在Windows或者其它装有JVM虚拟机的系统下。而C或C++直接编译成与机器和操作系统相关的代码。所以C语言编译的程序没有跨平台性,就算没有使用到操作系统相关的API,在不同的系统下也必须重新编译才能运行。
java中二进制的表示:
1、Java中定义两个数,然后分别打印出它们的二进制表示(例如7和-7):
System.out.println("Java二进制7: "+Integer.toBinaryString(7));
System.out.println("Java二进制-7: "+Integer.toBinaryString(-7));
输出:
Java二进制7: 111
Java二进制-7: 11111111111111111111111111111001
7的二进制就是111
-7转化二进制的过程:
(1)把-7转化成7,二进制是 111
(2)Java中对于不满32位的int二进制自动补齐,所以变成了 (29个0)111
(3)然后取反 (29个1)000
(4)然后加1 (29个1)001
扩展资料:
c语言中二进制的转换:
用函数转换itoa(值,数组名,进制)
#includestdio.h
#includestdlib.h
void main()
{
char str[8];
int i=8;
itoa(i,str,2);
printf("%s",str);
}
参考资料:
java二进制——百度百科
op=操作码,譬如iinc(整数加),istore_x(将栈顶整数值保存到第x个变量)