定点整数二进制运算.docx
- 文档编号:29156610
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:40
- 大小:386.35KB
定点整数二进制运算.docx
《定点整数二进制运算.docx》由会员分享,可在线阅读,更多相关《定点整数二进制运算.docx(40页珍藏版)》请在冰豆网上搜索。
定点整数二进制运算
口令:
123
packagexiangmu;
/**
*
*@authorpc
*/
publicclassXiangmu{
/**
*@paramargsthecommandlinearguments
*/
publicstaticvoidmain(String[]args){
Windowwin=newWindow();
}
}
packagexiangmu;
/**
*
*@authorpc
*/
importjava.lang.Object;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
classWindowextendsJFrameimplementsActionListener{
JMenuBarmenubar;//菜单条
JMenumenu1,menu2,menu3,menu4;//菜单栏
JMenuItemitem1,item2,item3,item4;//菜单项
JButtonqueren;
JLabelkoul,bti;
JPanelp1,p2;
JPasswordFieldmima;
Stringtxt="123";
intcishu=0;
publicWindow(){
this.setBounds(400,100,600,400);
this.setResizable(false);//窗口大小不许改变
caidan();
this.setLayout(null);
koul=newJLabel("输入口令:
");
koul.setBounds(150,100,150,100);
mima=newJPasswordField(10);
mima.setBounds(250,140,150,20);
koul.setFont(newFont("宋体",Font.BOLD,15));
bti=newJLabel("计算机组成原理算法实现
(二)");
bti.setFont(newFont("宋体",Font.BOLD,25));//改变字体大小
bti.setBounds(130,-20,380,210);
queren=newJButton("确定");
queren.setFont(newFont("宋体",Font.BOLD,15));
queren.setBounds(270,200,100,30);
item1.setEnabled(false);//菜单访问权设置
item2.setEnabled(false);
item3.setEnabled(false);
item4.setEnabled(false);
item1.addActionListener(this);//监听
item2.addActionListener(this);
item3.addActionListener(this);
item4.addActionListener(this);
queren.addActionListener(this);
this.add(queren);
this.add(mima);
this.add(koul);
this.add(bti,"Center");
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
voidcaidan(){
menubar=newJMenuBar();
menu1=newJMenu("定点整数机器表示");
menu2=newJMenu("定点整数变形补码加减法");
menu3=newJMenu("定点整数原码乘法");
menu4=newJMenu("浮点加减法");
menubar.add(menu1);
menubar.add(menu2);
menubar.add(menu3);
menubar.add(menu4);
item1=newJMenuItem("定点整数机器表示");
item2=newJMenuItem("定点整数变形补码加减法");
item3=newJMenuItem("定点整数原码乘法");
item4=newJMenuItem("浮点加减法");
menu1.add(item1);
menu2.add(item2);
menu3.add(item3);
menu4.add(item4);
this.setJMenuBar(menubar);
}
@Override
publicvoidactionPerformed(ActionEvente){
Stringt=mima.getText();
//判断口令是否正确try
if(e.getSource()==queren){
if(t.equals(txt)){
mima.setText("");
item1.setEnabled(true);//口令正确菜单可用
item2.setEnabled(true);
item3.setEnabled(true);
item4.setEnabled(true);
}
elseif(!
t.equals(txt)){
JOptionPane.showMessageDialog(rootPane,"密码错误");
item1.setEnabled(false);//菜单访问权设置
item2.setEnabled(false);
item3.setEnabled(false);
item4.setEnabled(false);
mima.setText("");
cishu++;
if(cishu==3){
JOptionPane.showMessageDialog(rootPane,"密码错误次数太多");
System.exit(0);
}
}
}
if(e.getSource()==item1){
Ddxsddxs=newDdxs();this.dispose();
}elseif(e.getSource()==item2){
Bmjjbmjj=newBmjj();this.dispose();
}elseif(e.getSource()==item3){
Ymcfymcf=newYmcf();this.dispose();
}elseif(e.getSource()==item4){
Fdjjfdjj=newFdjj();this.dispose();
}
}
}
packagexiangmu;
/**
*
*@authorpc
*/importjava.lang.Object;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassFdjjextendsJFrameimplementsActionListener{
JButtonJButton1,JButton2,JButton3,JButton4;
JLabelname,input,input1,input2,input3,input4,input5,input7,input6;
JTextFielddata,data1,data2,data3,data4,data5,data6,data7;
publicFdjj(){
setTitle("form5");
Toolkittool=getToolkit();
tool.getScreenSize();
this.setBounds(400,100,600,400);
this.setLayout(null);
JButton1=newJButton("输入");
JButton1.setFont(newFont("宋体",Font.BOLD,15));
JButton1.setBounds(100,320,80,30);
JButton2=newJButton("加法");
JButton2.setFont(newFont("宋体",Font.BOLD,15));
JButton2.setBounds(200,320,80,30);
JButton3=newJButton("减法");
JButton3.setFont(newFont("宋体",Font.BOLD,15));
JButton3.setBounds(300,320,80,30);
JButton4=newJButton("返回");
JButton4.setFont(newFont("宋体",Font.BOLD,15));
JButton4.setBounds(400,320,80,30);
name=newJLabel("浮点数的加减法运算",JLabel.CENTER);
name.setFont(newFont("宋体",Font.BOLD,25));
name.setBounds(130,-20,300,150);
input=newJLabel("第一个数的阶码:
");
input.setFont(newFont("宋体",Font.BOLD,15));
input.setBounds(25,100,150,30);
data=newJTextField(10);
data=newJTextField("");data.setBounds(155,105,100,20);
input1=newJLabel("尾数:
");
input1.setFont(newFont("宋体",Font.BOLD,15));
input1.setBounds(305,105,80,20);
data1=newJTextField(10);
data1.setBounds(355,105,150,20);
input2=newJLabel("第二个数的阶码:
");
input2.setFont(newFont("宋体",Font.BOLD,15));
input2.setBounds(25,150,150,30);
data2=newJTextField(10);
data2.setBounds(155,155,100,20);
input3=newJLabel("尾数:
");
input3.setFont(newFont("宋体",Font.BOLD,15));
input3.setBounds(305,155,80,20);
data3=newJTextField(10);data3.setBounds(355,155,150,20);
input4=newJLabel("加法的阶码:
");
input4.setFont(newFont("宋体",Font.BOLD,15));
input4.setBounds(55,200,100,30);
data4=newJTextField(10);
data4.setBounds(155,205,100,20);data4.setEnabled(false);
input5=newJLabel("尾数:
");
input5.setFont(newFont("宋体",Font.BOLD,15));
input5.setBounds(305,205,80,20);
data5=newJTextField(10);
data5.setBounds(355,205,150,20);data5.setEnabled(false);
input6=newJLabel("减法的阶码为:
");
input6.setFont(newFont("宋体",Font.BOLD,15));
input6.setBounds(55,250,100,30);
data6=newJTextField(10);data6.setBounds(155,255,100,20);data6.setEnabled(false);
input7=newJLabel("尾数:
");
input7.setFont(newFont("宋体",Font.BOLD,15));
input7.setBounds(305,255,80,20);
data7=newJTextField(10);
data7.setBounds(355,255,150,20);data7.setEnabled(false);
JButton1.addActionListener(this);
JButton2.addActionListener(this);
JButton3.addActionListener(this);
JButton4.addActionListener(this);
this.add(name);
this.add(input);this.add(input1);this.add(input2);
this.add(input3);this.add(input4);this.add(input5);
this.add(input6);this.add(input7);
this.add(data);this.add(data2);this.add(data1);this.add(data3);
this.add(data5);this.add(data6);this.add(data7);this.add(data4);
this.add(JButton1);this.add(JButton2);this.add(JButton3);this.add(JButton4);
setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
Stringcalculate(Strings1,Strings2){
charac='0';
chara1[]=s1.toCharArray(),a2[]=s2.toCharArray();
for(inti=a1.length-1;i>=0;i--){
if(a1[i]=='0'&&a2[i]=='0'&&ac=='0'){
a2[i]='0';
ac='0';
}elseif(a1[i]=='0'&&a2[i]=='0'&&ac=='1'){
a2[i]='1';
ac='0';
}elseif(a1[i]=='0'&&a2[i]=='1'&&ac=='0'){
a2[i]='1';
ac='0';
}elseif(a1[i]=='1'&&a2[i]=='0'&&ac=='0'){
a2[i]='1';
ac='0';
}elseif(a1[i]=='0'&&a2[i]=='1'&&ac=='1'){
a2[i]='0';
ac='1';
}elseif(a1[i]=='1'&&a2[i]=='1'&&ac=='0'){
a2[i]='0';
ac='1';
}elseif(a1[i]=='1'&&a2[i]=='0'&&ac=='1'){
a2[i]='0';
ac='1';
}elseif(a1[i]=='1'&&a2[i]=='1'&&ac=='1'){
a2[i]='1';
ac='1';
}
}
returnnewString(a2);
}
publicStringjiemaQiubu(Strings)/*阶码变形补码*/
{
if(s.startsWith("0")||s.startsWith("1")){
s="00"+s;
}
if(s.startsWith("+")){
s="00"+s.substring
(1);
}
if(s.startsWith("-")){
Stringtemp=s.substring(1,s.lastIndexOf("1"));
charc[]=temp.toCharArray();
for(inti=0;i if(c[i]=='0') c[i]='1'; else c[i]='0'; } temp=newString(c); s="11"+temp+s.substring(s.lastIndexOf("1")); } returns; } publicStringweishuQiubu(Strings)//尾数求变形补码(缺省整数点,多加长度个0) { if(s.startsWith("0")){ Stringstr=s.substring (2).replaceAll("1","0"); s="00"+s.substring (2)+str; } if(s.startsWith("+")){ Stringstr=s.substring(3).replaceAll("1","0"); s="00"+s.substring(3)+str; } if(s.startsWith("-")){ Stringtemp=null,str=s.substring(3).replaceAll("1","0"); temp=s.substring(3,s.lastIndexOf("1")); charc[]=temp.toCharArray(); for(inti=0;i if(c[i]=='0') c[i]='1'; else c[i]='0'; } temp=newString(c); s="11"+temp+s.substring(s.lastIndexOf("1"))+str; } returns; } publicinttoSubstract(Stringsj1,Stringsj2)/*求阶差*/ { intsum=0,signal=0; charcj2[]=sj2.substring(0,sj2.lastIndexOf("1")).toCharArray(); for(inti=0;i if(cj2[i]=='0') cj2[i]='1'; else cj2[i]='0'; } sj2=newString(cj2)+sj2.substring(sj2.lastIndexOf("1")); Stringtemp=calculate(sj1,sj2); if(temp.startsWith("00"))//第二个数阶码小 { signal=1; temp=temp.substring (2); } if(temp.startsWith("11"))/*第一个数阶码小*/ { signal=-1; Stringstr=temp.substring(2,temp.lastIndexOf("1")); charc[]=str.toCharArray(); for(inti=0;i if(c[i]=='0') c[i]='1'; else c[i]='0'; } temp=newString(c)+temp.substring(temp.lastIndexOf("1")); }else{ JOptionPane.showMessageDialog(this,"对阶时溢出! ","错误", JOptionPane.ERROR_MESSAGE); } intn[]=newint[temp.length()]; for(inti=0;i if(temp.substring(i,i+1).equals("0")) n[i]=0; else n[i]=1; } for(inti=n.length-2;i>=0;i--){ for(intj=i;j>=i;j--){
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 定点 整数 二进制 运算