精华内容
下载资源
问答
  • 不过我这儿有一个计算器的代码,你不介意的话用吧!import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Calculator implements ActionListener{private double data1=0.0,data2=0.0;...

    展开全部

    我有点忙,所以没时间给你慢慢改。不过我这儿有一个计算器的代码,你不介意的话用吧!

    import java.awt.*;

    import java.awt.event.*;

    import javax.swing.*;

    public class Calculator implements ActionListener{

    private double data1=0.0,data2=0.0;

    private String t_content;

    boolean number=false;

    //key用来标示用62616964757a686964616fe59b9ee7ad9431333264656665户所按下的按钮即加减乘除

    //key为0标示+,为1表示-,为2表示*,为3表示/

    short key=-1;

    //pkey的取值为-1~5

    //pkey为-1表示第一次按下=按钮,为5说明不是第一次按下=按钮

    //pkey为其他值0,1,2,3时分别代表+,-,*,/

    short pkey=-1;

    Frame frame=new Frame("Calculator");//定义标题为Calculator的窗体

    TextField textfield=new TextField(30);//定义计算机

    //定义backspace,ce,c0按钮

    Button backspace=new Button("Backspace");

    Button ce=new Button("CE");

    Button c0=new Button("C");

    //定义面板,其中backspace,ce,c0按钮和计算机兰textfeild放在面板p1中

    //其余按钮放在面板p2中

    Panel p1=new Panel();

    Panel p2=new Panel();

    //定义界面上的按钮数组,即除去backspace,ce,c0按钮的所有按钮

    String names[]=;

    Button bb[]=new Button[names.length];

    public static void main(String[] args){

    Calculator cal=new Calculator();

    cal.go();

    }

    public void go(){

    frame.setSize(300,200);

    frame.setLayout(new BorderLayout());

    Font fonts=new Font("楷体_GB2312",Font.PLAIN,12);

    //设置面板p1的字体和布局管理类型,将textfeild对象添加到面板中

    p1.setFont(fonts);

    p1.setLayout(new GridLayout(2,1,5,10));

    textfield.setFont(fonts);

    p1.add(textfield,null);

    //backspace,ce,c0按钮注册addActionListener方法

    backspace.addActionListener(this);

    ce.addActionListener(this);

    c0.addActionListener(this);

    //将backspace,ce,c0按钮添加到p1面板中

    p1.add(backspace,null);

    p1.add(ce,null);

    p1.add(c0,null);

    //设置面板p2的布局管理器类型为GridLayout

    p2.setLayout(new GridLayout(4,5,5,5));

    //为按钮组中的按钮注册addActionListener方法

    for(int i=0;i

    bb[i]=new Button(names[i]);

    p2.add(bb[i]);

    bb[i].addActionListener(this);

    }

    //设置面板p1和面板p2在窗体中的位置

    //面板p1在窗体的North方向,面板p2在窗体的South方向

    frame.add(p1,BorderLayout.NORTH);

    frame.add(p2,BorderLayout.SOUTH);

    frame.setVisible(true);

    //当单击关闭按钮时退出系统

    frame.addWindowListener(new WindowAdapter(){

    public void windowClosing(WindowEvent e){

    System.exit(0);

    }

    });

    }

    public void actionPerformed(ActionEvent ae){

    String s;

    //通过ActionEvent类的getActionCommand()方法,得出动作是由哪个按钮触发的。 s=ae.getActionCommand();

    //用户单击一次,计算栏里便去掉一个字符

    //先将计算栏里的字符清空,再添加除最好一个字符的字符串

    if(s.equals("Backspace")&&number){

    t_content=textfield.getText();

    textfield.setText("");

    for(int i=0;i

    char c=t_content.charAt(i);

    textfield.setText(textfield.getText()+c);

    }

    }

    //用户单击的是CE按钮,计算栏清空

    if(s.equals("CE")){

    textfield.setText("");

    number=false;

    }

    //用户单击的是C按钮

    if(s.equals("C")){

    textfield.setText("");

    data1=data2=0.0;

    number=false;

    }

    //用户单击的是sqrt按钮,其中负数不能被开方

    if(s.equals("sqrt")&&number){

    t_content=textfield.getText();

    if(t_content.charAt(0)=='-'){

    textfield.setText("负数不能被开方");

    number=false;

    }else{

    textfield.setText(Double.toString(java.lang.Math.sqrt(Double.parseDouble(t_content))));

    }

    }

    //用户单击的是1/x求倒数按钮,求倒数时分母不能为0

    if(s.equals("1/x") && number){

    t_content=textfield.getText();

    if(t_content.equals("0")){ textfield.setText("零不能求倒数");

    number=false;

    }else{

    textfield.setText(Double.toString(1/Double.parseDouble(t_content)));

    }

    }

    //用户单击的是%按钮

    if(s.equals("%")&&number){

    if(data2==0){

    t_content=textfield.getText();

    textfield.setText(t_content);

    }else{

    boolean g=false;

    for(int i=0;i

    if('.'==textfield.getText().charAt(i)){

    g=true;

    break;

    }

    //如果是Double 数,除100

    if(g=true){

    double dtemp=Double.parseDouble(textfield.getText());

    dtemp=dtemp/100.0;

    textfield.setText(Double.toString(dtemp));

    }

    //如果是int数但能被100整除,则去掉末尾两个0

    else{

    if(Integer.parseInt(textfield.getText())%100==0){

    int itemp=Integer.parseInt(textfield.getText());

    itemp/=100;

    textfield.setText(Integer.toString(itemp));

    }

    //如果是int数,但不能被100整除,则按Double数处理

    else{

    double dtemp=Double.parseDouble(textfield.getText());

    dtemp=dtemp/100.0;

    textfield.setText(Double.toString(dtemp));

    }

    }

    } }

    //对正负数字的处理

    if(s.equals("+/-")){

    t_content=textfield.getText();

    if(t_content.charAt(0)=='-'){

    textfield.setText("");

    String content;

    for(int i=1;i

    textfield.setText(textfield.getText()+t_content.charAt(i));

    }

    }else{

    textfield.setText("-"+t_content);

    }

    }

    //所按下的按钮为+按钮

    if(s.equals("+")){

    switch(pkey){

    case 0:

    data2+=Double.parseDouble(textfield.getText());

    break;

    case 1:

    data2+=Double.parseDouble(textfield.getText());

    break;

    case 2:

    data2+=Double.parseDouble(textfield.getText());

    break;

    case 3:

    if(textfield.getText().equals("0")){

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

    number=false;

    }else{

    key=-1;

    data2/=data1;

    textfield.setText(Double.toString(data2));

    break;

    }

    default:

    data2=Double.parseDouble(textfield.getText());

    }

    pkey=key=0;

    textfield.setText("");

    }

    //所按下的按钮为-按钮

    if(s.equals("-")){

    switch(pkey){

    case 0:

    data2+=Double.parseDouble(textfield.getText());

    break;

    case 1:

    data2+=Double.parseDouble(textfield.getText());

    break;

    case 2:

    data2+=Double.parseDouble(textfield.getText());

    break;

    case 3:

    if(textfield.getText().equals("0")){

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

    number=false;

    }else{

    key=-1;

    data2/=data1;

    textfield.setText(Double.toString(data2));

    break;

    }

    default:

    data2=Double.parseDouble(textfield.getText());

    }

    pkey=key=1;

    textfield.setText("");

    }

    //所按下的按钮为*按钮

    if(s.equals("*")){

    switch(pkey){

    case 0:

    data2+=Double.parseDouble(textfield.getText());

    break;

    case 1:

    data2+=Double.parseDouble(textfield.getText());

    break;

    case 2:

    data2+=Double.parseDouble(textfield.getText());

    break;

    case 3:

    if(textfield.getText().equals("0")){ textfield.setText("除数不能为零");

    number=false;

    }else{

    key=-1;

    data2/=data1;

    textfield.setText(Double.toString(data2));

    break;

    }

    default:

    data2=Double.parseDouble(textfield.getText());

    }

    pkey=key=2;

    textfield.setText("");

    }

    //所按下的按钮为/按钮

    if(s.equals("/")){

    switch(pkey){

    case 0:

    data2+=Double.parseDouble(textfield.getText());

    break;

    case 1:

    data2+=Double.parseDouble(textfield.getText());

    break;

    case 2:

    data2+=Double.parseDouble(textfield.getText());

    break;

    case 3:

    if(textfield.getText().equals("0")){

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

    number=false;

    }else{

    key=-1;

    data2/=data1;

    textfield.setText(Double.toString(data2));

    break;

    }

    default:

    data2=Double.parseDouble(textfield.getText());

    }

    pkey=key=3;

    textfield.setText("");

    }

    //所按下的按钮为=,求结果

    if(s.equals("=")&&number){

    //如果不是第一次按下=按钮

    if(pkey==5){

    switch(pkey){

    case 0:

    data2+=data1;

    textfield.setText(Double.toString(data2));

    break;

    case 1:

    data2-=data1;

    textfield.setText(Double.toString(data2));

    break;

    case 2:

    data2*=data1;

    textfield.setText(Double.toString(data2));

    break;

    case 3:

    if(textfield.getText().equals("0")){

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

    number=false;

    }else{

    data2/=data1;

    textfield.setText(Double.toString(data2));

    break;

    }

    }

    }

    //如果是第一次按下=按钮

    else{

    data1=Double.parseDouble(textfield.getText());

    switch(key){

    case 0:

    key=-1;

    data2+=Double.parseDouble(textfield.getText());

    textfield.setText(Double.toString(data2));

    break;

    case 1:

    key=-1;

    data2-=Double.parseDouble(textfield.getText());

    textfield.setText(Double.toString(data2)); break;

    case 2:

    key=-1;

    data2*=Double.parseDouble(textfield.getText());

    textfield.setText(Double.toString(data2));

    break;

    case 3:

    if(textfield.getText().equals("0")){

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

    number=false;

    }else{

    key=-1;

    data2/=Double.parseDouble(textfield.getText());

    textfield.setText(Double.toString(data2));

    break;

    }

    }

    }

    pkey=5;

    }

    //按下的按钮时数字按钮

    else{

    switch(s.charAt(0)){

    case'0':

    case'1':

    case'2':

    case'3':

    case'4':

    case'5':

    case'6':

    case'7':

    case'8':

    case'9':

    number=true;

    textfield.setText(textfield.getText()+s);

    break;

    //对.的处理

    case'.':

    t_content=textfield.getText();

    boolean g=false; //对计算机栏中的数据进行检验

    //如果其中有小数点,则用户单击该按钮时不在添加小数点

    for(int i=0;i

    if(t_content.charAt(i)=='.'){

    g=true;

    break;

    }

    }

    //数据中已经有小数点

    if(g==true)

    break;

    // 数据中没有小数点,当用户单击小数点时添加小数点

    if(g==false)

    textfield.setText(t_content+".");

    }

    }

    }

    private String Integer(String string) {

    // TODO Auto-generated method stub

    return null;

    }

    }

    2Q==

    已赞过

    已踩过<

    你对这个回答的评价是?

    评论

    收起

    展开全文
  • 写在前头:这一谈在计算上简单举例加法,只要谨记逢二进一还是很好理解的,不好理解的是编码那一部分,其实只要把编码看成查字典就好理解了,每个字符在存储的时候都有对应的二进制,反过来,通过二进制就能查到对应...

    写在前头:这一谈在计算上简单举例加法,只要谨记逢二进一还是很好理解的,不好理解的是编码那一部分,其实只要把编码看成查字典就好理解了,每个字符在存储的时候都有对应的二进制,反过来,通过二进制就能查到对应的字符(相同字典里,通过拼音或偏旁查到页面,反过来知道页面来查相关字符), 如果真看不懂就直接跳到最“写在后头”吧!

    4695c7525f56a43c1a14d2a419238b65.png
    1190b895c79a80e0469e47b6696a5bec.png
    b2690175c0de6c8ff63ee8942ae73390.png

    往期精彩回顾

    和孩子一起来尝二进制(一)初次见面

    存储介质遐想的未来——从光盘到云盘

    新员工的适应过程是企业在照镜子

    企业人才香蕉现象

    写在后头:在我们日常生活中其实还用到其他的进制计数,例如:五进制(时间上一个字【老升广东人】5分钟,两个字10分钟);七进制(一周7天,两周14天);十进制(最常用的了);十二进制(一年12个月,两年24四个月);十五进制(一刻15分钟,两刻30分钟);十六进制(旧时一斤十六两,半斤八两,哈哈);二十四进制(每天24小时,两天48小时);六十进制(一分60秒,一小时60分钟)……你还有什么有趣的进制计数,留言和老升谈谈吧。

    展开全文
  • int x =110; int y =10; Console.WriteLine(x|= y); ...Console.WriteLine(x&...想亲自算一下这种计算的时候,打开windows自带...选择DEC(十进制),然后输入,对应的可以看到其他进制的值。 -----------------...
    int x =110;
    int y =10;
    
    Console.WriteLine(x|= y);
    Console.WriteLine(x&= ~y);
    

      

    想亲自算一下这种计算的时候,打开windows自带的计算器calc.exe

    调到-程序员计算器-模式即可

    选择DEC(十进制),然后输入,对应的可以看到其他进制的值。

    -------------------------------------------------------------------------------------

     x|= y

    x=0110 1110,y=0000 1010

    或操作:0110 1110(可用计算器上的Or),即110

    -------------------------------------------------------------------------------------

    x&= ~y

    x=0110 1110,y=0000 1010

    ~y 即 1111 0101(可用计算器上的Not)

    与操作:0110 0100(可用计算器上的And),即100

    -------------------------------------------------------------------------------------

    没有基础,用这个方法挺方便的。

    转载于:https://www.cnblogs.com/CoderMonkie/p/7454328.html

    展开全文
  • 可以在十进制,十六进制,八进制,二进制之间转换运算,是一个不错的小软件
  • 计算器能够实现二进制、八进制、十进制和十六进制的相互转换;二进制、八进制、十进制和十六进制的加减乘除运算;以及十进制的简单科学计算:sin,cos,tan,sqrt,ln,exp。
  • 适合软硬件开发人员的计算器二进制运算强大,支持64位。 采用表达式驱动,输入表达式便即时显示结果,抛弃传统计算器繁琐的按钮,表达式可复制粘贴、回调使用,可以任意复杂组合。 支持二进制串直接运算,如0b1101...
  • 二进制计算器 BinCalc

    热门讨论 2008-06-24 16:48:52
    自己很早以前写的一个二进制计算器:Megatops BinCalc。 支持在Windows 2000/XP/2003上运行,支持在Palm OS手机上运行。 <br>专为嵌入式软硬件开发者和底层软件程序员设计的二进制计算器,适用于单片机、DSP、...
  • python小课堂03 - 基本数据类型进制篇什么是进制?来自百度: 进制也就是进位计数制,是人为定义的带进位的计数方法(有不... 十进制是逢十进 一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进 制就是逢...

    python小课堂03 - 基本数据类型进制篇

    什么是进制?

    来自百度: 进制也就是进位计数制,是人为定义的带进位的计数方法(有不带 进位的计数方法,比如原始的结绳计数法,唱票时常用的“正”字计 数法,以及类似的tally mark计数)。 对于任何一种进制---X进制, 就表示每一位置上的数运算时都是逢X进一位。 十进制是逢十进 一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进 制就是逢x进位。

    通俗的讲,所为的进制就是一种计数时表示的方法,多少进制,就是当满足此进制时就向高位进一位,比如我们生活中常用的十进制,11 + 9 = 20,个位数1 + 9 = 10,所以此时向高一位进1,最后得出的结果就是20。举个更简单的例子,生活中我们经常以60秒作为1分钟来计数,这也可以理解为一种进制(“60进制”)。

    Tips(小常识): 二进制: 0 和 1 表示.八进制:0,1,2, 3 ,4,5,6,7 十六进制:0,1,2,3....9,A,B,C,D,E,F (十六进制从10到15分别用A-F来表示)

    动手实践各种进制

    有了上节课的IDLE基础,这次来看下在python中,对应的进制数是如何表达的呢?

    找到python中的idle,前期练手通过这个工具比较便捷,可以右键发送到桌面,下次找就不用费劲了!(后续课程不在介绍了!)

    79e3e04e03ff3007241aca76a31a1046.png

    先来看下在python中,如何表达二进制,八进制,十六进制以及我们常用的十进制,如下图所示:

    dc7ebacf34b055acfb84ed158cd96563.png

    0b: binary(二进制) 所以小写b

    0o: octal(八进制) 所以小写o

    0x: Hexadecimal(十六进制) 所以小写x

    由上图可以看到结果:

    >>> 0b11>>> 0b102>>> 0b1004>>> 0b10008>>> 0o11>>> 0o108>>> 0o10064>>> 0o1000512>>> 0x11>>> 0x1016>>> 0x100256>>> 0x10004096>>> 

    如何计算出上图的结果呢?

    二进制计算:

    0b1 : 1*2^0 = 10b10 : 1*2^1 + 0*2^0 = 2 + 0 = 20b100 : 1*2^2 + 0*2^1 + 0*2^0 = 4 + 0 + 0 = 40b1000 : 1*2^3 + 0*2^2 + 0*2^1 + 0*2^0 = 8 + 0 + 0 + 0 = 8

    这也是学过计算机专业同学嘴中经常说到的“8421”!等同于二进制的1111。

    八进制计算:

    .......后续以此类推!

    十六进制不列举了,一个道理!

    忘了说了!常规的十进制,实际在python中正常输入即可,就像上一章所讲的整数类型,所表示的都是十进制的数字!

    进制之间的转换

    进制之间的转换,便于我们在不同场景下有着不同的进制表示,就像生活中的时间,时间很短的情况下,咱们可以用秒作为单位来衡量,一旦时间很长,则用分钟,或者小时来计量了,此时需要将秒转换为分钟或者小时,与进制是一个道理的!

    下面来看下python中如何将上述的进制之间做转换。

    da8e2a632fb074fba7f50fb7e18c3569.png

    bin(): 将括号中的数值转为二进制

    int():将括号中的数值转为十进制

    oct():将括号中的数值转为八进制

    hex():将括号中的数值转为十六进制

    以上四个函数方法类似于上章讲到的type(),大家可以先理解这是一种写法即可。在python中这样的语法非常简单,就如同写英语一样,就是一句话!

    小结

    在我们实际的编程过程中,进制可能会接触的非常少,但是依然会用到,再此算是做一个基础的总结吧。

    ab0c8e0fd98b2482b8e0521edad3ee1e.png

    想学习python的朋友,欢迎关注我的公众号: migezatan(咪哥杂谈)。

    展开全文
  • 二进制除法怎么算(共2篇)二进制运算法则1 2 微型计算机运算基础1 2 1 二进制数的运算方法电子计算机具有强大的运算能力,它可以进行两种运算:算术运算和逻辑运算。1.二进制数的算术运算二进制数的算术运算包括:...
  • 计算器简介计算器是现代人发明的可以进行数字运算的电子机器。现代的电子计算器能进行数学运算的手持电子机器,拥有集成电路芯片,但结构简单,功能弱,但较为方便与廉价,可广泛运用于商业交易中,主要是计算结果是...
  • 二进制计算器: 对二进制数执行算术运算二进制计算器的缓冲区限制为8位。 如果算术运算的结果超过8位, 则多余的位将被截断。 算术运算是使用JavaScript函数完成的。 该应用程序包括: 一个显示屏, 在该显示...
  • 程序员二进制计算器 v1.36

    热门讨论 2014-07-16 16:21:43
    专为程序员打造的计算器二进制运算强大,支持64位。 采用表达式驱动,输入表达式便即时显示结果,抛弃传统计算器繁琐的按钮,表达式可粘贴或回调重复使用。 支持二进制串直接运算,如0b1101 & 0b0011= 0b0001。 ...
  • 一个用C#写的,在WM6下用的十进制、十六进制和二进制计算器。 可以在进制之间转换,带简单的逻辑运算。 不支持小数。 分辨率240X320。 在HTC S600上调试通过。 当时写这个计算器的目的是为调试串口通讯,计算检验和...
  • 自己使用VS2017开发环境,C#语言编写的多进制计算器,可以实现二进制、十进制、十六进制的数字运算和逻辑运算,以及进制之间的转化,现将源代码分享给大家,有需要的小伙伴可以参考下
  • 一、实验目的 1、实现一个词法分析程序,将输入字符串流分解成单词流供语法分析使用。(注意:如果单词输入错误,必须有提示) 2、在词法分析的基础上实现一个语法分析程序,对词法...十进制整数|十进制小数|八进制
  • (())与let是等效的 arithmetic expression type 与[是等效的 source与.... 其实,Shell(这里是Bash)本身不具备处理浮点计算的能力,...linux shell 不同进制数据转换(二进制,八进制,十六进制,base64) s...
  • 有时需要对十六进制数做加减乘除,某些手机app能实现此功能,但使用起来未免有些麻烦,其实...提示:HEX是十六进制,DEC是十进制,OCT是八进制,BIN是二进制,大家也可以根据自己的实际需要选择是哪一种进制。 ...
  • 在之前阅读 ThreadPoolExecutor 源码的时候,发现代码里用到了一些二进制相关的位运算之类的代码,看起来有些费劲了,所以现在大概总结了一些笔记,二进制这东西吧,不难,就跟数学一样,知道规律,计算公式,就贼...
  • 首先简单介绍Windows 10操作系统及其内置计算器,Windows 10是由美国微软公司开发的应用于计算机和平板电脑的操作系统,于2015年7月29日发布正式版。...计算器是现代人发明的可以进行数字运算的电子机...
  • 用于所有设备的二进制运算的便捷计算器。 :mobile_phone: :laptop: :desktop_computer: 随意使用计算器来教授数字系统。 如果您有建议或发现错误,可以在GitHub上与我联系或提交更改。 我之所以建立此计算器,是...
  • 预科班_二进制

    2019-01-28 15:25:26
    提纲 ...电脑的二进制其首位是符号位(用来表示二进制数的正负),首位“1”表示负数,“0”表示正数 电脑用二进制的优点 二进制状态简单 可靠性,稳定性高 运算规则简单,设计简单 通用...
  • 本软件用于计算已知变量的位运算。输入已知变量值数一、数二,选择正确的变量类型或计算方法(按位与、按位或、按...“and”运算通常用于二进制的取位操作,例如一个数 and 1的结果就是取二进制的最末位。这可以用来...
  • 二进制

    2021-01-10 15:09:49
    来源:牛客网 题目描述 scimoon 有一个坏掉的计算器,这个计算器仅接受 0\sim 2^{20}-10∼2 20 −1 的数 这个计算器只支持一种操作,举个例子,输入一个数 x,这个数会按顺序进行 n 次操作,在...做 与运算 如果 op_i=2
  • c语言计算器代码(有注释),可实现、十、十六等多进制的加减乘除运算,可实现界面刷新、返回、退出等多项功能
  • 计算器使用VC 6.0 (C++)环境编写,是我院的学科作业,在我加以完善后,已可以支持小数之间的进制转换以及在二进制、八进制、十六进制下的独立运算。此计算器最大的特点在于能在用户输入完整串算式之后再计算。 ...
  • 十进制转换成二进制的时候,如果不用计算器是一件很麻烦的事情,需要不断地除以二然后在计算结果,这是一件很浪费时间的算法,现在我就告诉你们一种最简洁的算法;例1:把十进制133转换成二进制;先计算133由多少个2...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 415
精华内容 166
关键字:

二进制运算计算器