zoukankan      html  css  js  c++  java
  • 201671010127 2016—2017-2 通过一个小程序对Java的再认识。

      学习了将近四周的Java语言,对于Java语言,我也有了更进一步的理解,出于对Java语言的喜爱,我总是喜欢没事的时候,自己敲一些很简单的代码,一边学习Java语言,一边对比C语言,往往可以帮助我们更好的学习Java言,由于我们先学习了C语言,每次写Java程序时,我们总会习惯性的把C语言的语法带到Java语言里,但由于Java和C语言的语法又有一定的差别,所以会导致我们写的程序无法通过编译。因此我们通过比较性的学习,更加能使我们很好地了解Java语言,下面就我遇到的问题和大家分享一下。

      我分别用C语言和Java语言写了一个实现两个任意进制数之间转换的程序。

      Java版:

    package first;
    /**
    * 利用字符串与整型的转换实现数字分离
    * 作者:牛百泉
    * 日期:2017/9/14 23:37
    */
    import java.util.*;
    public class niubaiquan
    {

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    char NumberArray[]=new char[32];//创建一个数组用来储存字符串数字
    byte NumberArray2[]=new byte[32];//用来储存转换后的每一个数字
    int sum=0,i,j=0,radi1,radi2;
    @SuppressWarnings("resource")
    Scanner input=new Scanner(System.in);
    System.out.println("请输入一个整形数据");
    int number=input.nextInt();
    System.out.println("请输入这个整数的进制");
    radi1=input.nextInt();
    System.out.println("请输入这个整形数据要转换成的进制数");
    radi2=input.nextInt();
    if(number<0)
    number=-number;//也可以用绝对值方法
    String data=String.valueOf(number);//将一个整型数据转换成数字字符串
    NumberArray=data.toCharArray();//将一个字符串转换成一个字符串数组
    for(i=0;i<NumberArray.length;i++)
    {
    int temp =(NumberArray[i]-'0');
    sum+=Math.pow(radi1,NumberArray.length-1-i)*temp;//将这个数转换成十进制的数
    }
    do
    {
    NumberArray2[j]=(byte) (sum%radi2);//转换成需要的进制
    sum/=radi2;
    j++;
    }while(sum!=0);
    System.out.printf("%d进制的%d转换成%d进制后为",radi1,number,radi2);
    for(i=j-1;i>=0;i--)
    {
    System.out.printf("%d",NumberArray2[i]);
    }
    }

    }

    测试结果

    C语言版

    #include<stdio.h>
    #include<math.h>
    #define N 50
    int main()
    {
    int i=0,k=0,j,t,number,number1,number2,radi1,radi2,sum=0;
    int A[N],B[N];
    printf("请输入一个整数和它的进制数以及要转换成的进制数: ");
    scanf("%d%d%d",&number,&radi1,&radi2);
    printf("%d进制的%d转换成%d进制后为",radi1,number,radi2);
    while(number!=0)//分离数字
    {
    A[i]=number%10;
    number=number/10;
    i++;
    }
    for(j=0;j<i;j++)//转换成十进制
    {
    number1+=A[j]*pow(radi1,j);
    }
    do//转化成需要的进制
    {
    B[k]=number1%radi2;
    number1/=radi2;
    k++;
    }while(number1!=0);
    for(t=k-1;t>=0;t--)
    {
    printf("%d",B[t]);
    }
    return 0;
    }

    测试结果

    在这两个程序中我感觉最大的区别是Java语言和C语言对于字符串的的处理有很大的不同,在c语言中,字符串和字符串数组没有多大的区别,基本是通过字符串数组来进行字符串的操作,而在Java语言中,字符串有专门的处理方法,虽然两者之间可以通过String.valueOf()和toCharArray()方法来转化,但它们去是不同的两个数据类型。

  • 相关阅读:
    cstring string 比较之二(学习笔记)
    转 大话设计模式学习笔记(思维导图) 更新中
    转 十三种设计模式的思维导图
    (转)关于栈、堆、静态存储区最大可分配大小的探讨 海量之一
    如何学习网络协议(学习笔记)
    境界篇:linux 驱动开发的境界(学习笔记)
    b.关于vc编程境界的讨论
    关于编程境界的小结
    Java异常(一) Java异常简介及其架构
    多线程简单阐述
  • 原文地址:https://www.cnblogs.com/nbq520/p/7531600.html
Copyright © 2011-2022 走看看