将 C++ 转换为 Java - 小型项目
Convert C++ to Java - Small Project
我需要帮助将此代码块转换为 java。我以前从未使用过 C++,所以这是一项任务。这是 C++ 代码:
#include<iostream>
#include<stdlib.h>
#define PAGE_SIZE 4096
using namespace std;
int main(int argc, char **argv){
if(argc<2){
cout<<"Enter the address: ";
return -1;
}
unsigned int address = atoi(argv[1]);
unsigned int page_number = address / PAGE_SIZE;
unsigned int offset = address%PAGE_SIZE;
cout<<"the address "<<address<<"contains: Page number = "<<page_number<<"And off set = "<<offset<<endl;
system("pause");
}
这是我目前在 java:
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int pageSize = 4096;
int x = 0;
int address = atoi(argv[1]);
int pageNumber = address / pageSize;
int offset = address % pageSize;
if (x < 2) {
System.out.println("Enter the address: ");
x = in.nextInt();
}
System.out.println("The address " + address + " contains: Page number = " + pageNumber + " And off set = " + offset);
}
我不确定 "argv[1]" 在 C++ 中的含义,所以我不知道如何将其转换为 java。我这样做是为了做作业,我想回答的问题是:
假设一个系统有一个 32 位的虚拟地址,页面大小为 4 KB。编写一个程序,在命令行上传递一个虚拟地址(十进制),并让它输出给定地址的页码和偏移量。
例如,您的程序将 运行 如下: yourprogram 19986
你的程序会输出:
地址19986包含:页码=4偏移量=3602
编写此程序需要使用适当的数据类型来存储 32 位。也使用无符号数据类型。
如有任何帮助,我们将不胜感激。
在您的 java 程序中,Scanner in
变量将读取输入,因此您应该将输入添加到地址。计算必须在输入后进行,因为变量会在用户输入结果时赋值。
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int pageSize = 4096;
int address = 0;
if (address < 2) {
System.out.println("Enter the address: ");
address = in.nextInt();
}
int pageNumber = address / pageSize;
int offset = address % pageSize;
System.out.println("The address " + address + " contains: Page number = " + pageNumber + " And off set = " + offset);
}
在 C++ 中,argv 表示输入将是第一个命令行参数,并且它将是一个整数。
在你的 C++ 程序中:
unsigned int address = atoi(argv[1]);
地址将是命令行的输入,在给出的示例中 address = 19986
我需要帮助将此代码块转换为 java。我以前从未使用过 C++,所以这是一项任务。这是 C++ 代码:
#include<iostream>
#include<stdlib.h>
#define PAGE_SIZE 4096
using namespace std;
int main(int argc, char **argv){
if(argc<2){
cout<<"Enter the address: ";
return -1;
}
unsigned int address = atoi(argv[1]);
unsigned int page_number = address / PAGE_SIZE;
unsigned int offset = address%PAGE_SIZE;
cout<<"the address "<<address<<"contains: Page number = "<<page_number<<"And off set = "<<offset<<endl;
system("pause");
}
这是我目前在 java:
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int pageSize = 4096;
int x = 0;
int address = atoi(argv[1]);
int pageNumber = address / pageSize;
int offset = address % pageSize;
if (x < 2) {
System.out.println("Enter the address: ");
x = in.nextInt();
}
System.out.println("The address " + address + " contains: Page number = " + pageNumber + " And off set = " + offset);
}
我不确定 "argv[1]" 在 C++ 中的含义,所以我不知道如何将其转换为 java。我这样做是为了做作业,我想回答的问题是:
假设一个系统有一个 32 位的虚拟地址,页面大小为 4 KB。编写一个程序,在命令行上传递一个虚拟地址(十进制),并让它输出给定地址的页码和偏移量。
例如,您的程序将 运行 如下: yourprogram 19986
你的程序会输出:
地址19986包含:页码=4偏移量=3602
编写此程序需要使用适当的数据类型来存储 32 位。也使用无符号数据类型。
如有任何帮助,我们将不胜感激。
在您的 java 程序中,Scanner in
变量将读取输入,因此您应该将输入添加到地址。计算必须在输入后进行,因为变量会在用户输入结果时赋值。
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int pageSize = 4096;
int address = 0;
if (address < 2) {
System.out.println("Enter the address: ");
address = in.nextInt();
}
int pageNumber = address / pageSize;
int offset = address % pageSize;
System.out.println("The address " + address + " contains: Page number = " + pageNumber + " And off set = " + offset);
}
在 C++ 中,argv 表示输入将是第一个命令行参数,并且它将是一个整数。
在你的 C++ 程序中:
unsigned int address = atoi(argv[1]);
地址将是命令行的输入,在给出的示例中 address = 19986