我在Java(applet)中的简单二进制代码转换器遇到了一个问题:
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
public class dual_convert extends Applet implements ActionListener{
TextField dual;
TextField decimal;
Button dual_b;
Button decimal_b;
Label dual_l;
Label decimal_l;
int decimal_i;
String dual_s [];
int dual_i;
int decimal_e;
public void init() {
setLayout(null);
dual = new TextField();
dual.setBounds(90,10,100,25);
add(dual);
decimal = new TextField();
decimal.setBounds(90,40,100,25);
add(decimal);
decimal_l = new Label("Decimal:");
decimal_l.setBounds(10,40,80,25);
add(decimal_l);
dual_l = new Label("Binary:");
dual_l.setBounds(10,10,80,25);
add(dual_l);
dual_b = new Button ("Convert");
dual_b.setBounds(200,10,80,25);
add(dual_b);
dual_b.addActionListener(this);
decimal_b = new Button ("Convert");
decimal_b.setBounds(200,40,80,25);
add(decimal_b);
decimal_b.addActionListener(this);
}
public void actionPerformed (ActionEvent e) {
if (e.getSource()==decimal_b) {
decimal_i = Integer.parseInt(decimal.getText());
int ih = 0;
dual.setText("");
while (decimal_i>0) {
dual.setText((decimal_i % 2)+dual.getText());
decimal_i = decimal_i / 2;
ih++;
}
}
if (e.getSource()==dual_b) {
dual_s = dual.getText().split("");
dual_i = dual_s.length;
decimal.setText("");
for (int i=0;dual_i>0;dual_i--) {
decimal_e = decimal_e + (Integer.parseInt(dual_s[dual_i]) * 2^i);
i++;
}
decimal.setText(decimal_e+"");
}
}
}
线程“AWT-EventQueue-1”中的异常java.lang.ArrayIndexOutoFBoundsException:8在Dual.ActionPerformed(dual.java:65)在java.awt.Button.ProcessActionEvent(Button.java:409)在java.awt.Button.ProcessEvent(Button.java:377)在java.awt.Component.DispatchEventImpl(Component.java:4861)在java.awt.Component.DispatchEvent(ectionPrivilege(ProtectionDomain.java:76)在java.awt.EventQueue.DispatchEvent(EventQueue.java:699)在java.awt.EventDispatchThread.PumponeEventForFilters(EventDispatchThread.java:242)在java.awt.EventDispatchThread.PumpEventSforFilter(EventDispatchThread.java:161)在
对于二进制-->十进制转换,我使用这个系统(还有其他系统吗?):
100101=[(1)×25]+[(0)×24]+[(0)×23]+[(1)×22]+[(0)×21]+[(1)×20]
100101=[1×32]+[0×16]+[0×8]+[1×4]+[0×2]+[1×1]
100101=3710
线程“AWT-EventQueue-1”java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)在java.lang.Integer.ParseInt(Integer.java:504)在java.lang.Integer.ParseInt(Integer.java:527)在DUAL_CONVER.ActionPerforded(DUAL_CONVER.JAVA:64)在java.awt.Button.ProcessActionEvent(Button.java:409)在java.awt.Button.ProcessEvent(java.awt.EventQueue$4。在java.awt.EventQueue$4处运行(EventQueue.java:700)在java.security.AccessController.DoPrivileed(本机方法)在java.security.ProtectionDomain$1处运行(EventQueue.java:76)在java.awt.EventQueue.DispatchEventEventForFilters(EventDispatchThread.PumpEventSforFilters(EventDispatchThread.java:699)在
问题就在这里:
for (int i=0;dual_i>0;dual_i--) {
decimal_e = decimal_e + (Integer.parseInt(dual_s[dual_i - 1]) * 2^i);
i++;
}
您应该使用dual_s[dual_i-1]
而不是dual_s[dual_i]
,因为dual_i=dual_s.length;
和数组索引以0
开头
本文向大家介绍十进制到二进制转换,包括了十进制到二进制转换的使用技巧和注意事项,需要的朋友参考一下 十进制数字也可以转换为二进制格式。要将十进制数转换为二进制数,我们需要将数字除以2,直到达到0或1。然后,在每一步骤中,其余部分将分开存储以形成相反的二进制等效数。 在此算法中,我们将遵循递归方法。这将帮助我们在不使用堆栈数据结构的情况下解决问题。在实现中,我们知道函数的递归将遵循内部堆栈。我们将使
我必须为赋值创建二进制到十进制的数字转换器。这项任务有一些限制。它们是:1。没有无限循环2。中断语句以退出循环3。没有标签或转到语句4。不使用整数。parseInt(字符串s,整数基数) 我得到了部分转换下来,但我有异常处理的问题。我试图在输入不是二进制时显示错误消息,并继续允许用户输入,每次无效的尝试都显示相同的错误消息。 我曾尝试用while和do-while循环替换for循环,但结果对我来说
本文向大家介绍JavaScript转换二进制编码为ASCII码的方法,包括了JavaScript转换二进制编码为ASCII码的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript转换二进制编码为ASCII码的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的javascript程序设计有所帮助。
在你学习计算机的过程中,你可能已经接触了二进制。二进制在计算机科学中是很重要的,因为存储在计算机内的所有值都是以 0 和 1 存储的。如果没有能力在二进制数和普通字符串之间转换,我们与计算机之间的交互非常棘手。 整数值是常见的数据项。他们一直用于计算机程序和计算。我们在数学课上学习它们,当然最后用十进制或者基数 10 来表示它们。十进制 $$233_{10}$$ 以及对应的二进制表示 $$1110
本文向大家介绍Python3进制之间的转换代码实例,包括了Python3进制之间的转换代码实例的使用技巧和注意事项,需要的朋友参考一下 Python3进制之间的转换 在Python里面实现进制之间的转换是非常方便的,有专门的函数来进行这个操作: 下面直接上代码: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
我如何将一个写为二进制的字符串转换为二进制(字节数组)? 如果我有一个字符串: 下面是当我将二进制设置为字节数组时发生的情况(字节数组返回48,这是ASCII) 我不擅长解释,所以希望上面的例子足以告诉你我想要什么。