Ⅰ 如何將以下c++代碼轉成Java代碼
1、C++如何接受Java的完全面向對象
JAVA是一種完全面向對象的語言。這意味著你對任何一個Java對象所做的動作都是通過一個方法實現的。
第一點就是,再也沒有沒有主函數這樣的孤立的東西了。取而代之的是,你必須開始用一個對象的看法看待一個程序,一個類的對象。
但是這個對象又什麼對象呢? 大多數Java程序只是簡單的通過繼承Java基礎類Object來實現所需要的東西,但是你可以通過創建程序基礎類用於多個特性相似的應用程序來節省時間。 嚴格的面向對象的規定意味著理用原有的C/C++代碼不可以直接不加改動的使用;系統調用也是這樣的。C++中,你可以通過在C++正常的命名空間外聲明extern"C"來使用原有的C的過程調用,包括系統調用。
2、Java在虛擬機上運行
Java源代碼並不是被編譯成為普通的機器代碼。而是被翻譯成為虛擬機可以執行的代碼。一個Java解釋器最終執行這些代碼。
這其中沒有連接的過程;解釋在需要的時候動態的載入一些類; 在Java中,只有一個類似的安全回溯的方法,但是並不是十分簡單的方法。你必須定義一個本地方法,其目的是為c語言提供介面,然後提供連接的介質。Java環境提供了完成這種任務的工具,但是整個過程和C++中提供的extern比微不足道,完成使用C++類的過程則更加復雜,因為這樣會引入對C的借口和C函數和C++成員函數的問題。
3、許多常用的系統實用工具函數已經在系統類中的方法中提供出來,但是這些明顯沒有包含經過許多年來你所創建的那些類和過程。
所以,在你需要的時候你應該去鑽研一下。 也有一些軟體,可以實現C#代碼轉換java工具 C#轉java代碼轉換工具(C# to Java Converter)一個很強大的工具, 能將c#代碼片段、文件甚至工程直接轉換成java代碼,並能徹底解決外部引用的DLL問題,最強的是支持c#工程的直接轉換,生成的Java代碼質量也很不錯。
軟體已破解,去除了未注冊版最多隻能轉換1000行的限制,親測可用!壓縮包內含幫助文檔,不過由於軟體的使用很簡單,幫助文檔基本可以忽略。
Ⅱ 把下面C語言代碼改成java代碼
import java.util.Arrays;
import java.util.Scanner;
public class A {
static final int maxn=100000+5;
static long[] a=new long[maxn],t=new long[maxn];
static long ans=0;
static void mymerge(int x,int m,int y) {
int tx=x,tm=m+1;
int k=0;
while(tx<=m&& tm<=y) {
if(a[tx]<=a[tm])
t[k++]=a[tx++];
else {
ans+=m-tx+1;
a[k++]=a[tm++];
}
}
while(tx<=m) t[k++]=a[tx++];
while(tm<=y) t[k++]=a[tm++];
for(int i=0;i<k;i++)
a[x++]=t[i];
}
static void mergesort(int x,int y) {
if(x==y)return ;
int mid=(x+y)/2;
int xx=x,yy=y;
mergesort(xx,mid);
mergesort(mid+1,yy);
mymerge(xx,mid,yy);
//System.out.println(xx+" "+mid+" "+yy);
}
public static void main(String[] arg) {
int n,k;
Scanner input=new Scanner(System.in);
while(input.hasNext()) {
n=input.nextInt();
k=input.nextInt();
Arrays.fill(a, 0);
Arrays.fill(t, 0);
for(int i=0;i<n;i++) {
a[i]=input.nextLong();
}
ans=0;
mergesort(0, n-1);
if(k>ans)
System.out.println("0");
else
System.out.println((ans-k)+"");
}
}
}
Ⅲ 如何將下面C語言代碼 轉換為 java方法
完整的直譯為java方法是這樣的,但是這樣寫dataLen的值必須小於等於數組長度,不然會出現下標越界的異常
(int[]data,intdataLen){
intsum=0;
for(inti=0;i<dataLen;i++){
sum+=data[i];
}
returnsum;
}
如果是意譯(計算int數組的所有數之和),那麼java可以這樣寫
(int[]data){
intsum=0;
for(inti=0;i<data.length;i++){
sum+=data[i];
}
returnsum;
}
Ⅳ 把C語言程序轉換成Java
package dis;
import java.io.*;
import java.math.*;
public class dis
{
public static void main(String [] s) throws Exception
{
Float a,b,c;
double x2;
double x1;
System.out.println("請輸入a, b, c的值");
BufferedReader bReader=new BufferedReader(new InputStreamReader(System.in));
a=Float.parseFloat(bReader.readLine());
b=Float.parseFloat(bReader.readLine());
c=Float.parseFloat(bReader.readLine());
if (b*b - 4*a*c <= 0)
System.out.println("輸入的系數不對,b2-4ac不大於0!程序退出!");
else
{
x1 = (-b + Math.sqrt(b*b - 4*a*c))/2*a;
x2 = (-b - Math.sqrt(b*b - 4*a*c))/2*a;
System.out.println("x1 = "+ x1);
System.out.println("x2 = "+x2);
}
return;
}
}
Ⅳ 怎樣把一下的C語言程序改成java程序
修改成Java後的代碼:
publicclassDemo{
publicstaticintgcd(inta,intb,intc){
intmin,i;
if(a>b){
if(b>c){
min=c;
}else{
min=b;
}
}else{
if(a>c){
min=c;
}else{
min=a;
}
}
if(b>c){
if(c>a){
min=a;
}else{
min=c;
}
}else{
if(b>a){
min=a;
}else{
min=b;
}
}
if(a>c){
if(c>b){
min=b;
}else{
min=c;
}
}else{
if(a>b){
min=b;
}else{
min=a;
}
}
for(i=min;i>=1;i--){
if(a%i==0&&b%i==0&&c%i==0){
break;
}
}
returni;
}
publicstaticvoidmain(String[]args){
inta=1,b=0,c=0,i,k=0,j=0,m=0,n=0,z,y;
while(a<9){
b=1;
while(b<9){
c=1;
while(c<9){
if(gcd(a,b,c)==1){
System.out.println(a+";"+b+";"+c);
k++;
z=b*b-4*a*c;
if(z==0){
j++;
}elseif(z>0){
m++;
for(y=1;y<z/2;y++){
if(y*y==z){
System.out.println("解答是有理數。");
}
}
}else{
n++;
}
}
c++;
}
b++;
}
a++;
}
System.out.println("N="+k);
System.out.println("N2="+j);
System.out.println("N3="+m);
System.out.println("N4="+n);
i=gcd(a,b,c);
}
}
Ⅵ c語言如何轉化為java 語言
public class Test{
public staitc void main(String args){
int i,j,k=3;
for(i=0;i<4;k=k-1-i,i++)
{
for(j=0;j<4+i;j++)
{
if(j<k)
System.out.print(" ");
else
{
System.out.print("*");
j++;
}
}
}
k=3;
}
}
保存為Test.java,然後運行javac Test.java和java Test就可以運行了。。
Ⅶ 一段C語言程序轉換為java的寫法謝謝!
按照你的要求,C語言程序轉換成的Java程序如下:
publicclassGGG{
(Stringinput_str){
Stringstr_buff_8="",str_buff_10="",str_return="";
longsum8_1=0,sum8_2=0,sum10_1=0,sum10_2=0;//分別存儲八進制和十進制不同演算法取值的合計for(inti=0;i<input_str.length();i++){//對輸入字元串的每一個位元組進行循環
str_buff_8+=Integer.toOctalString(input_str.charAt(i));//將ASCII碼值轉換成八進制字元串
str_buff_10+=Integer.toString(input_str.charAt(i));//將ASCII碼值轉換成十進制字元串
}
for(inti=1;i<=str_buff_8.length();i++){
sum8_1+=(str_buff_8.charAt(i-1)-'0')*i;
sum8_2+=(str_buff_8.charAt(str_buff_8.length()-i)-'0')*i;
}
for(inti=1;i<=str_buff_10.length();i++){
sum10_1+=(str_buff_10.charAt(i-1)-'0')*i;
sum10_2+=(str_buff_10.charAt(str_buff_10.length()-i)-'0')*i;
}
str_return=""+sum8_1%10+sum8_2%10+sum10_1%10+sum10_2%10;
returnstr_return;
}
publicstaticvoidmain(String[]args){
System.out.println(calculateBillMac("abcdef"));
}
}
運行結果:
2739
這個數據和C語言用字元串"abcdef"測試的結果相同.
Ⅷ 把C語言代碼轉成Java代碼
package dis;
import java.io.*;
import java.math.*;
public class dis
{
public static void main(String [] s) throws Exception
{
Float a,b,c;
double x2;
double x1;
System.out.println("請輸入a, b, c的值");
BufferedReader bReader=new BufferedReader(new InputStreamReader(System.in));
a=Float.parseFloat(bReader.readLine());
b=Float.parseFloat(bReader.readLine());
c=Float.parseFloat(bReader.readLine());
if (b*b - 4*a*c <= 0)
System.out.println("輸入的系數不對,b2-4ac不大於0!程序退出!");
else
{
x1 = (-b + Math.sqrt(b*b - 4*a*c))/2*a;
x2 = (-b - Math.sqrt(b*b - 4*a*c))/2*a;
System.out.println("x1 = "+ x1);
System.out.println("x2 = "+x2);
}
return;
}
}
Ⅸ 把下面的C語言代碼改成Java 代碼
unsigned short crc(unsigned char [] crc_pointer,unsigned short data_length)
{
unsigned short k,k0,bit_flag;
unsigned short int_crc=0xffff;
for (k=0;k<data_length;k++)
{
int_crc^=(crc_pointer)[k];
for(k0=0;k0<8;k0++)
{
bit_flag=int_crc&0x0001;
int_crc>>=1;
if (bit_flag==1)
int_crc^=0xa001;
}
}
return(int_crc);
}
Ⅹ 使用idea將c轉為java
這是由於文件的結構標簽丟失造成的。
文件中明顯out文件沒有被識別,選擇文件對應的文件標簽默認的out文件為輸出文件src為源文件,選擇out文件夾點擊Excluded將out文件夾標記為輸出文件然後重啟IDE。選擇對應的文件標簽後軟體會自動識別內容。
IntelliJIDEA是Java語言的集成開發環境,是公認的最好用的java開發工具之一。使用這個工具可以幫助我們快速的開發Java程序。其次,IntelliJIDEA不僅支持windows還支持Linux,這對Linux十分的友好,也讓Linux用戶更加的喜愛它。