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("请输入一个整数和它的进制数以及要转换成的进制数:\n");
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()方法来转化,但它们去是不同的两个数据类型。
201671010127 2016—2017-2 通过一个小程序对Java的再认识。的更多相关文章
- 201671010127 2016—2017—2 Java学习周结
时间真是个最公平东西,只要能够好好地利用它,它可以为我们带来我们我们所想要的东西.学习Java已经有一周了,对于Java基础知识的认识也更进一步,对Java的兴趣也愈来愈浓.实现一个Java程序,主要 ...
- 一个小栗子聊聊JAVA泛型基础
背景 周五本该是愉快的,可是今天花了一个早上查问题,为什么要花一个早上?我把原因总结为两点: 日志信息严重丢失,茫茫代码毫无头绪. 对泛型的认识不够,导致代码出现了BUG. 第一个原因可以通过以后编码 ...
- 201671010127 2016—2017—2 Java怎样解决Java程序中中文乱码的问题。
这是本次第二次分享新手在编程中遇到的问题,相信很多Java新手和我一样,在Java编程中会遇到中文乱码的情况,下面我就给大家分享我遇到问题和解决问题的具体过程. 我先用Notepad++写了一个如下的 ...
- charles刷分微信跳一跳小程序对https的理解
以前以为只要安装了https 客户端与服务端的数据会被加密就安全了 事实上 只要任意一款抓包工具 并伪造证书 就可以解密这个被所谓https加密的数据 如 可以下载charles的根证书 作为伪 ...
- 美国评出2016最值得去的旅游胜地+纯电动车郊游记+DIY一个小电动车
美国评出2016最值得去的旅游胜地(10) http://bbs.miercn.com/bd/201510/thread_569397_1_10.html 自带发电机! 北汽E150 EV纯电动车郊游 ...
- Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)
Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer Advanced Installer :Free for 30 da ...
- 发现一个小坑的地方,unity的协程,想要停止,必须以字符串启动
今天想要停止一个协成,发现调用 StopCoroutine(ShowDebug()); 竟然不管用,后来看了文档才知道,原来想要停止协成,必须用字符启动协程 StartCoroutine(" ...
- 【转】2016/2017 Web 开发者路线图
链接:知乎 [点击查看大图] 原图来自LearnCodeAcademy最火的视频,learncode是YouTube上最火的Web开发教学频道,介绍包括HTML/CSS/JavaScript/Subl ...
- 用android去写一个小程序
前言: 软工的一个小作业:实现"黄金分割小游戏", 需要结对编程,队友:陈乐云 共用时两天. 早期思路设计: 采用键值对的形式,以Map作为存储结构.优点:能够将数据与用户对 ...
随机推荐
- int 21h 汇编
INT 21H 指令说明及使用方法 转自http://www.cnblogs.com/ynwlgh/archive/2011/12/12/2285017.html 很多初学汇编语言的同学可能会对INT ...
- Visual Studio Nuget还原步骤
vs2013是在这里还原: NuGet套件还原步骤(以vs2012为例) 下载别人的范例,出现由于Nuget套件不存在而无法启动时:效果如下图: 步骤如下:1.点击 项目->启用NuGet程序包 ...
- 热烈祝贺博主LZUGIS博客访问量突破
截止发文时间,博主"LZUGIS"CSDN博客文章总访问量突破50W,值此特殊的时刻,特发此文,以表纪念与督促. 博客详情 博客专栏 公众号 常言道:不积跬步,无以至千里:不积小流 ...
- canvas 绘制图像
结果: 代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="U ...
- 深入理解java虚拟机-第四章
第4章 虚拟机性能监按与故障处理工具 jps 虚拟机进程状况工具 jstat 虚拟机统计信息监视工具 JVM Statistics Monitoring Tool jstat [ option vmi ...
- PHP读取文件函数fread,fgets,fgetc,file_get_contents和file函数的使用总结
fread().fgets().fgetc().file_get_contents() 与 file() 函数用于从文件中读取内容. 1.fread() fread()函数用于读取文件(可安全用于二进 ...
- SQL Server临时表的使用方案
文章来源:http://www.codesky.net/article/201007/145241.html 我们今天是要和大家一起讨论的是SQL Server临时表的实用大全,如果你对SQL S ...
- 【转】简单明了区分escape、encodeURI和encodeURIComponent
一.前言 讲这3个方法区别的文章太多了,但是大部分写的都很绕.本文试图从实践角度去讲这3个方法. 二.escape和它们不是同一类 简单来说,escape是对字符串(string)进行编码(而另外两种 ...
- 关于 webpack-dev-server 热更新出现重复的问题
关于 webpack-dev-server 热更新出现重复的问题 webpack-dev-server 在前端开发时很方便,可以热更新,只需要配置 webpack.config.js 即可. 但是昨天 ...
- Ambari-HDP
文档说明以及下载路径 https://docs.hortonworks.com/index.html Ambari的安装路径 https://docs.hortonworks.com/HDPDocum ...