【gerrit源码安装】【php全球查潮汐源码】【.net5源码调试】-23的源码_23的源码计算过程

时间:2024-12-29 08:30:17 编辑:spring事务原理源码剖析 来源:广州询盘系统源码

1.二进制的原码、补码、反码详解
2.求一个JAVA计算器源代码。源码不要按钮的计算gerrit源码安装那种。速度。过程php全球查潮汐源码。源码.net5源码调试急用

-23的源码_23的源码计算过程

二进制的原码、补码、反码详解

       è®¡ç®—机中,并没有原码和反码,只是使用补码,代表正负数。

       ä½¿ç”¨è¡¥ç çš„意义:可以把减法或负数,转换为加法运算。从而简化计算机的硬件。

       ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼

       æ¯”如钟表,时针转一圈,周期是 小时。

       å€’拨 3 小时,可以用正拨 9 小时代替。

       9,就称为-3 的补数。

       è®¡ç®—方法:-3 = 9。

       å¯¹äºŽåˆ†é’ˆï¼Œå€’拨 X 分,就可以用正拨 -X 代替。

       ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼

       å¦‚果,限定了两位十进制数 (0~),周期就是 。

       é‚£ä¹ˆï¼Œå‡ä¸€ï¼Œå°±å¯ä»¥ç”¨ + 代替。

       ã€€ã€€ï¼1 =

       ã€€ã€€ + = (1)

       å¿½ç•¥è¿›ä½ï¼Œåªå–两位数,这两种算法,结果就是相同的。

       äºŽæ˜¯ï¼Œ 就是 -1 的补数。

       å…¶å®ƒè´Ÿæ•°çš„补数,大家可以自己求!

       æ±‚出了负数的补数,就可用加法,代替减法了。

       ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼

       è®¡ç®—机中使用二进制,补数,就改称为【补码】。

       å¸¸ç”¨çš„八位二进制是: ~ 。

       å®ƒä»¬ä»£è¡¨äº†åè¿›åˆ¶ï¼š0~,周期就是 。

       é‚£ä¹ˆï¼Œï¼1,就可以用 = 代替。

       æ‰€ä»¥ï¼šï¼1 的补码,就是 = 。

       åŒç†ï¼šï¼2 的补码,就是 = 。

       ç»§ç»­ï¼šï¼3 的补码,就是 = 。

       ã€‚。。

       æœ€åŽï¼šï¼ï¼Œè¡¥ç æ˜¯ = 。

       è®¡ç®—公式:负数的补码=+这个负数。

       æ­£æ•°ï¼Œç›´æŽ¥è¿ç®—即可,不需要求补码。

       ã€€ã€€ã€€ä¹Ÿå¯ä»¥è¯´ï¼Œæ­£æ•°æœ¬èº«å°±æ˜¯è¡¥ç ã€‚

       ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼

       è¡¥ç çš„应用如: 7-3 = 4。

       ç”¨è¡¥ç çš„计算过程如下:

       ã€€ã€€ã€€ã€€7 的补码=

           -3的补码=

       ï¼ï¼ç›¸åŠ ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼

       ã€€ã€€ã€€å¾—:  (1) = 4 的补码

       èˆå¼ƒè¿›ä½ï¼Œåªä¿ç•™å…«ä½ï¼Œä½œä¸ºç»“果即可。

       è¿™å°±æ˜¯ï¼šä½¿ç”¨è¡¥ç ï¼ŒåŠ æ³•å°±ä»£æ›¿äº†å‡æ³•ã€‚

       æ‰€ä»¥ï¼Œåœ¨è®¡ç®—机中,有一个加法器,就够用了。

       åŽŸç å’Œåç ï¼Œéƒ½æ²¡æœ‰è¿™ç§åŠŸèƒ½ã€‚

       ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼

       åŽŸç å’Œåç ï¼Œæ¯«æ— ç”¨å¤„。计算机中,根本就没有它们。

求一个JAVA计算器源代码。不要按钮的过程优质溯源码燕窝价格那种。速度。源码。计算急用

       import java.awt.*;

       import java.awt.event.*;

       import java.lang.*;

       import javax.swing.*;

       public class Counter extends Frame

       {

       //声明三个面板的过程布局

       GridLayout gl1,gl2,gl3;

       Panel p0,p1,p2,p3;

       JTextField tf1;

       TextField tf2;

       Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b;

       StringBuffer str;//显示屏所显示的字符串

       double x,y;//x和y都是运算数

       int z;//Z表示单击了那一个运算符.0表示"+",1表示"-",2表示"*",3表示"/"

       static double m;//记忆的数字

       public Counter()

       {

       gl1=new GridLayout(1,4,,0);//实例化三个面板的布局

       gl2=new GridLayout(4,1,0,);

       gl3=new GridLayout(4,5,,);

       tf1=new JTextField();//显示屏

       tf1.setHorizontalAlignment(JTextField.RIGHT);

       tf1.setEnabled(false);

       tf1.setText("0");

       tf2=new TextField();//显示记忆的索引值

       tf2.setEditable(false);

       //实例化所有按钮、设置其前景色并注册监听器

       b0=new Button("Backspace");

       b0.setForeground(Color.red);

       b0.addActionListener(new Bt());

       b1=new Button("CE");

       b1.setForeground(Color.red);

       b1.addActionListener(new Bt());

       b2=new Button("C");

       b2.setForeground(Color.red);

       b2.addActionListener(new Bt());

       b3=new Button("MC");

       b3.setForeground(Color.red);

       b3.addActionListener(new Bt());

       b4=new Button("MR");

       b4.setForeground(Color.red);

       b4.addActionListener(new Bt());

       b5=new Button("MS");

       b5.setForeground(Color.red);

       b5.addActionListener(new Bt());

       b6=new Button("M+");

       b6.setForeground(Color.red);

       b6.addActionListener(new Bt());

       b7=new Button("7");

       b7.setForeground(Color.blue);

       b7.addActionListener(new Bt());

       b8=new Button("8");

       b8.setForeground(Color.blue);

       b8.addActionListener(new Bt());

       b9=new Button("9");

       b9.setForeground(Color.blue);

       b9.addActionListener(new Bt());

       b=new Button("/");

       b.setForeground(Color.red);

       b.addActionListener(new Bt());

       b=new Button("sqrt");

       b.setForeground(Color.blue);

       b.addActionListener(new Bt());

       b=new Button("4");

       b.setForeground(Color.blue);

       b.addActionListener(new Bt());

       b=new Button("5");

       b.setForeground(Color.blue);

       b.addActionListener(new Bt());

       b=new Button("6");

       b.setForeground(Color.blue);

       b.addActionListener(new Bt());

       b=new Button("*");

       b.setForeground(Color.red);

       b.addActionListener(new Bt());

       b=new Button("%");

       b.setForeground(Color.blue);

       b.addActionListener(new Bt());

       b=new Button("1");

       b.setForeground(Color.blue);

       b.addActionListener(new Bt());

       b=new Button("2");

       b.setForeground(Color.blue);

       b.addActionListener(new Bt());

       b=new Button("3");

       b.setForeground(Color.blue);

       b.addActionListener(new Bt());

       b=new Button("-");

       b.setForeground(Color.red);

       b.addActionListener(new Bt());

       b=new Button("1/X");

       b.setForeground(Color.blue);

       b.addActionListener(new Bt());

       b=new Button("0");

       b.setForeground(Color.blue);

       b.addActionListener(new Bt());

       b=new Button("+/-");

       b.setForeground(Color.blue);

       b.addActionListener(new Bt());

       b=new Button(".");

       b.setForeground(Color.blue);

       b.addActionListener(new Bt());

       b=new Button("+");

       b.setForeground(Color.red);

       b.addActionListener(new Bt());

       b=new Button("=");

       b.setForeground(Color.red);

       b.addActionListener(new Bt());

       //实例化四个面板

       p0=new Panel();

       p1=new Panel();

       p2=new Panel();

       p3=new Panel();

       //创建一个空字符串缓冲区

       str=new StringBuffer();

       //添加面板p0中的源码组件和设置其在框架中的位置和大小

       p0.add(tf1);

       p0.setBounds(,,,);

       //添加面板p1中的组件和设置其在框架中的位置和大小

       p1.setLayout(gl1);

       p1.add(tf2);

       p1.add(b0);

       p1.add(b1);

       p1.add(b2);

       p1.setBounds(,,,);

       //添加面板p2中的组件并设置其的框架中的位置和大小

       p2.setLayout(gl2);

       p2.add(b3);

       p2.add(b4);

       p2.add(b5);

       p2.add(b6);

       p2.setBounds(,,,);

       //添加面板p3中的组件并设置其在框架中的位置和大小

       p3.setLayout(gl3);//设置p3的布局

       p3.add(b7);

       p3.add(b8);

       p3.add(b9);

       p3.add(b);

       p3.add(b);

       p3.add(b);

       p3.add(b);

       p3.add(b);

       p3.add(b);

       p3.add(b);

       p3.add(b);

       p3.add(b);

       p3.add(b);

       p3.add(b);

       p3.add(b);

       p3.add(b);

       p3.add(b);

       p3.add(b);

       p3.add(b);

       p3.add(b);

       p3.setBounds(,,,);

       //设置框架中的布局为空布局并添加4个面板

       setLayout(null);

       add(p0);

       add(p1);

       add(p2);

       add(p3);

       setResizable(false);//禁止调整框架的大小

       //匿名类关闭窗口

       addWindowListener(new WindowAdapter(){

       public void windowClosing(WindowEvent e1)

       {

       System.exit(0);

       }

       });

       setBackground(Color.lightGray);

       setBounds(,,,);

       setVisible(true);

       }

       //构造监听器

       class Bt implements ActionListener

       {

       public void actionPerformed(ActionEvent e2)

       {

       try{

       if(e2.getSource()==b1)//选择"CE"清零

       {

       tf1.setText("0");//把显示屏清零

       str.setLength(0);//清空字符串缓冲区以准备接收新的输入运算数

       }

       else if(e2.getSource()==b2)//选择"C"清零

       {

       tf1.setText("0");//把显示屏清零

       str.setLength(0);

       }

       else if(e2.getSource()==b)//单击"+/-"选择输入的运算数是正数还是负数

       {

       x=Double.parseDouble(tf1.getText().trim());

       tf1.setText(""+(-x));

       }

       else if(e2.getSource()==b)//单击加号按钮获得x的值和z的值并清空y的值

       {

       x=Double.parseDouble(tf1.getText().trim());

       str.setLength(0);//清空缓冲区以便接收新的另一个运算数

       y=0d;

       z=0;

       }

       else if(e2.getSource()==b)//单击减号按钮获得x的值和z的值并清空y的值

       {

       x=Double.parseDouble(tf1.getText().trim());

       str.setLength(0);

       y=0d;

       z=1;

       }

       else if(e2.getSource()==b)//单击乘号按钮获得x的值和z的值并清空y的值

       {

       x=Double.parseDouble(tf1.getText().trim());

       str.setLength(0);

       y=0d;

       z=2;

       }

       else if(e2.getSource()==b)//单击除号按钮获得x的值和z的值并空y的值

       {

       x=Double.parseDouble(tf1.getText().trim());

       str.setLength(0);

       y=0d;

       z=3;

       }

       else if(e2.getSource()==b)//单击等号按钮输出计算结果

       {

       str.setLength(0);

       switch(z)

       {

       case 0 : tf1.setText(""+(x+y));break;

       case 1 : tf1.setText(""+(x-y));break;

       case 2 : tf1.setText(""+(x*y));break;

       case 3 : tf1.setText(""+(x/y));break;

       }

       }

       else if(e2.getSource()==b)//单击"."按钮输入小数

       {

       if(tf1.getText().trim().indexOf(′.′)!=-1)//判断字符串中是否已经包含了小数点

       {

       }

       else//如果没数点有小

       {

       if(tf1.getText().trim().equals("0"))//如果初时显示为0

       {

       str.setLength(0);

       tf1.setText((str.append("0"+e2.getActionCommand())).toString());

       }

       else if(tf1.getText().trim().equals(""))//如果初时显示为空则不做任何操作

       {

       }

       else

       {

       tf1.setText(str.append(e2.getActionCommand()).toString());

       }

       }

       y=0d;

       }

       else if(e2.getSource()==b)//求平方根

       {

       x=Double.parseDouble(tf1.getText().trim());

       tf1.setText("数字格式异常");

       if(x<0)

       tf1.setText("负数没有平方根");

       else

       tf1.setText(""+Math.sqrt(x));

       str.setLength(0);

       y=0d;

       }

       else if(e2.getSource()==b)//单击了"%"按钮

       {

       x=Double.parseDouble(tf1.getText().trim());

       tf1.setText(""+(0.*x));

       str.setLength(0);

       y=0d;

       }

       else if(e2.getSource()==b)//单击了"1/X"按钮

       {

       x=Double.parseDouble(tf1.getText().trim());

       if(x==0)

       {

       tf1.setText("除数不能为零");

       }

       else

       {

       tf1.setText(""+(1/x));

       }

       str.setLength(0);

       y=0d;

       }

       else if(e2.getSource()==b3)//MC为清除内存

       {

       m=0d;

       tf2.setText("");

       str.setLength(0);

       }

       else if(e2.getSource()==b4)//MR为重新调用存储的数据

       {

       if(tf2.getText().trim()!="")//有记忆数字

       {

       tf1.setText(""+m);

       }

       }

       else if(e2.getSource()==b5)//MS为存储显示的数据

       {

       m=Double.parseDouble(tf1.getText().trim());

       tf2.setText("M");

       tf1.setText("0");

       str.setLength(0);

       }

       else if(e2.getSource()==b6)//M+为将显示的数字与已经存储的数据相加要查看新的数字单击MR

       {

       m=m+Double.parseDouble(tf1.getText().trim());

       }

       else//选择的是其他的按钮

       {

       if(e2.getSource()==b)//如果选择的是"0"这个数字键

       {

       if(tf1.getText().trim().equals("0"))//如果显示屏显示的为零不做操作

       {

       }

       else

       {

       tf1.setText(str.append(e2.getActionCommand()).toString());

       y=Double.parseDouble(tf1.getText().trim());

       }

       }

       else if(e2.getSource()==b0)//选择的是“BackSpace”按钮

       {

       if(!tf1.getText().trim().equals("0"))//如果显示屏显示的不是零

       {

       if(str.length()!=1)

       {

       tf1.setText(str.delete(str.length()-1,str.length()).toString());//可能抛出字符串越界异常

       }

       else

       {

       tf1.setText("0");

       str.setLength(0);

       }

       }

       y=Double.parseDouble(tf1.getText().trim());

       }

       else//其他的数字键

       {

       tf1.setText(str.append(e2.getActionCommand()).toString());

       y=Double.parseDouble(tf1.getText().trim());

       }

       }

       }

       catch(NumberFormatException e){

       tf1.setText("数字格式异常");

       }

       catch(StringIndexOutOfBoundsException e){

       tf1.setText("字符串索引越界");

       }

       }

       }

       public static void main(String args[])

       {

       new Counter();

       }

       }