将内存的内容从int转换为char

时间:2017-03-07 15:30:20

标签: java virtual-machine

我正在使用虚拟操作系统作为我的任务的一部分。内存是一个大小为[300] [4]的二维数组。

问题是,当我打印其内容时,它们以整数值显示,即使在将其转换为char之后仍然是整数值 打印。

我面临的问题是

for(int i=0;i<300;i++)
{
    for(int j=0;j<4;j++)
    { 
        System.out.println("M["+i+"]["+j+"]="+M[i][j]);         
    }
}

即使在类型转换后,它也会显示整数值 注意:输入文件包含以下内容

$AMJ001100070003                           
GD10PD10LR10SR40H
$DTA
OPERATING
$END0011

所以我要做的是为PTR(Page表Register)生成一个随机存储器位置,然后为frame生成另一个随机数并将其乘以10,例如如果frame的值是20,那么GD10PD10LR10SR40H存储在位置200。

所以问题是当我打印其内容时,例如内存位置200,其显示71(G的值),当在类型转换后显示71而不是&#39; G&#39;。我也尝试添加48( ASCII值为0)但没有影响。 请帮我解决这个问题。

我做错了

1 个答案:

答案 0 :(得分:0)

这应该有效,使用Ascii字符范围将值转换为字符:

for(int i=0;i<300;i++)
        {
            for(int j=0;j<4;j++)
            { 
                System.out.println("M["+i+"]["+j+"]="+(char)M[i][j]);         
            }
        }