精华内容
下载资源
问答
  • @TOC Java声效计算器(带有十进制转二进制十六进制的功能) 声明: 这是我们学校老师布置的一次期末课设,要是只靠在课堂上学的知识是不可能完成这个课设的,做这个课设,我在课下看了一些关于Java用户图形界面的...

    @TOC Java声效计算器(带有十进制转二进制和十六进制的功能)

    声明:

    这是我们学校老师布置的一次期末课设,我在课下看了一些关于Java用户图形界面的书,又结合北大教授的讲课的内容,完成了这次课设。我对比较难理解的代码和重要代码已经注释,如果我有哪一部分写的不明白的地方请大家在评论区留言。

    设计思路:

    首先运用swing.JFrame生成框架,再用swing.JPanel生成三个面板,分别用布局管理器对他们进行管理。添加音效,首先得把音效文件放到确定的路径,再把路径按照我写的代码格式编写就OK了。

    计算器实现功能:

    实现基本的加、减、乘、除等基本用法,除此之外还添加了十进制转二进制和十六进制的功能。
    每次按完图形界面上的按钮就会发出声音

    代码部分:

    package 计算器;

    import java.awt.BorderLayout;
    import java.awt.Font;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.File;
    import java.io.FileInputStream;
    import java.math.BigInteger;

    import javax.sound.sampled.AudioSystem;
    import javax.sound.sampled.Clip;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.WindowConstants;

    import sun.audio.AudioPlayer;
    import sun.audio.AudioStream;
    public class Calculator extends JFrame implements ActionListener {
    private final String[] str={
    “7”, “8”, “9”, “/”,
    “4”, “5”, “6”, “*”,
    “1”, “2”, “3”, “-”,
    “.”, “0”, “=”, “+”
    };
    JButton[] buttons =new JButton[str.length];
    JButton reset =new JButton(“CE”);
    JButton t16 =new JButton(“hex”);
    JButton t2 =new JButton(“binary”);
    JTextField display = new JTextField(">>>Welcome<<<");

    public Calculator() {
    	Font font =new Font("Consolas",Font.BOLD,18);//粗体
    

    // add components
    JPanel pnlHead = new JPanel(new BorderLayout());
    JPanel pnlend = new JPanel(new BorderLayout());
    pnlHead.add(display,BorderLayout.CENTER);
    pnlHead.add(reset,BorderLayout.EAST);
    pnlend.add(t16,BorderLayout.EAST);
    pnlend.add(t2,BorderLayout.CENTER);
    display.setFont(font);
    reset.setFont(font);
    t16.setFont(font);
    t2.setFont(font);

    	JPanel pnlBody =new JPanel(new GridLayout(4,4));
    	for(int i=0;i<str.length;i++){
    		buttons[i]=new JButton(str[i]);
    		buttons[i].setFont(font);
    		pnlBody.add(buttons[i]);
    	}
    	
    	getContentPane().setLayout(new BorderLayout());
    	getContentPane().add("North", pnlHead);
    	getContentPane().add("Center", pnlBody);
    	getContentPane().add("South", pnlend);
    

    // set frame properties
    for(int i=0;i<str.length;i++)
    buttons[i].addActionListener(this);
    reset.addActionListener(this);//
    display.addActionListener(this);//
    t16.addActionListener(this);//
    t2.addActionListener(this);

    // set frame properties
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    setSize(300,300);
    setLocation(500, 150);
    setVisible(true);
    }

    @Override
    public void actionPerformed(ActionEvent arg0) {
    	Object target =arg0.getSource();//定义事件发出的对象
    	String cmd = arg0.getActionCommand();//定义事件所发出的对象的名称
    	if(target==reset){
    		handleReset();
    		playMusic1();
    		}
    	else if(target==t16){ 
    		playMusic2();
    		BigInteger src = new BigInteger(display.getText());// 
    		display.setText(src.toString(16));
    	}
    	else if(target==t2){
    		playMusic2();
    		BigInteger src = new BigInteger(display.getText());// 
    		display.setText(src.toString(2));
    	}
    	else if (" 0123456789.".indexOf(cmd)>0){//遍历当前字符串 ***
    		handleNumber(cmd);
    	    playMusic2();
    	}
    	else {
    		handleOperator(cmd);
    	    playMusic2();
    	    }
    	// TODO Auto-generated method stub
    
    }
    boolean isFirstDigit = true;//**
    double number = 0.0;
    String operator = "=";//
    
    public void handleNumber(String key){
    	if(isFirstDigit)
    		display.setText(key);
    	else if(!key.equals("."))
    	    display.setText(display.getText()+key);
    	else if(display.getText().indexOf(".")<0)
    		display.setText(display.getText()+".");
    	isFirstDigit =false;
    }//**
    
    public void handleReset(){
    	display.setText("Thanks for using it.");
    	isFirstDigit =true;
    	operator ="=";
    }
    
    public void handleOperator(String cmd){
    	double dDisplay =Double.valueOf(display.getText());//每次都会附给它!!!**
    	switch(operator){
    	   case"+":number+=dDisplay;break;
    	   case"-":number-=dDisplay;break;
    	   case"*":number*=dDisplay;break;
    	   case"/":number/=dDisplay;break;
    	   case"=":number=dDisplay;break;
    	}
    	display.setText(String.valueOf(number));
    	operator =cmd;
    	isFirstDigit = true;
    }//***
    
    public void playMusic1(){
    	 String path1="D:\\96\\Ce.wav" ;//必须得把路径设置为字符型!!!!
    	 try {
    		  FileInputStream fileau=new  FileInputStream(path1);
    		  AudioStream as=new AudioStream(fileau);
    		  AudioPlayer.player.start(as);
    		 }
    		 catch (Exception e) {
    			 e.printStackTrace();
    		 }
    }
    
    public void playMusic2(){
    	 String path2="D:\\96\\Aj.wav" ;//必须得把路径设置为字符型!!!!
    	 try {
    		  FileInputStream fileau=new  FileInputStream(path2);
    		  AudioStream as=new AudioStream(fileau);
    		  AudioPlayer.player.start(as);
    		 }
    		 catch (Exception e) {
    			 e.printStackTrace();
    		 }
    }
    
    public static void main(String[] args) {
    	// TODO Auto-generated method stub
          new Calculator();
    }
    

    }

    运行结果:

    开始界面
    得出结果

    展开全文
  • python手写进制转换(本文仅探讨从十进制转二进制,八进制,十六进制)分析:二进制:代码:八进制:十六进制:小结 看了这篇博客,就想记录一下,免得忘了。 分析: 二进制: 我们都知道,二进制就是逢2进1,但是...

    python手写进制转换(本文仅探讨从十进制转二进制,八进制,十六进制)


    看了这篇博客,就想记录一下,免得忘了。

    分析:

    二进制:

    我们都知道,二进制就是逢2进1,但是如何把一个十进制数转化成二进制呢?
    比如有一个十进制数:6,我们可以把这个十进制数除以2,得到他的商,和余数,再将得到的商除以2,得到商和余数,直到商为0.
    在这里插入图片描述
    我们可以看到,将得到的余数从下到上连起来,就是这个十进制数的二进制表达。我们去计算器里验证一下:
    在这里插入图片描述
    可以看到,跟我们的计算结果一样。
    那下面,我们就可以用代码来实现了:

    代码:

    a = int(input('请输入一个十进制的正整数:'))
    def er(a):
        s = ''
        while a>0:
            b = a//2 # a/2得到商b
            c = str(a%2) # a%2得到余数 c 转化为str类型
            s = c+s # 直接用+运算符进行字符串连接,注意,因为余数是从下到上连接,所以是c+s
            a = b # 然后再将b的值赋给a,继续运算,直到a == 0
        return s
    

    这里的运算时可以化简的,我要写注释,就没有化简,化简的工作就交个你们了。

    八进制:

    同上

    十六进制:

    同上
    这里需要注意一点就是,十六进制里有A,B,C,D,E,F等字样,这在十进制里是没有的,那么我们就需要建一个列表来装这些字样。

    def shiliu(a):
        sl = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']
        s = ''
        while a>0:
            b = a//16
            c = a%16
            s = sl[c] + s
            a = b
        return s
    

    其实从这里可以看出来,我根本就不会化简这个代码 哭唧唧 请各位大佬帮忙化简下。哈哈

    小结

    根据这个方法,你可以进行任何进制的转化,比如我转一个7进制,15进制,19进制等等,都是可以的。

    展开全文
  • 各种进制之间的相互转换...二进制 逢二进一 八进制 逢八进一 十六进制 逢十六进一 十进制—>二/八/十六进制 口诀 整数部分,除2/8/16取余; 小数部分,乘2/8/16取整 例:23.25转换成二进制为10111.01 二...

    各种进制之间的相互转换,你还在用计算器吗,我总结了一些进制转换的方法,大家可以参考哦!

    在这之前,我们先来看看三种进制的规则

    进制 规则
    十进制 逢十进一
    二进制 逢二进一
    八进制 逢八进一
    十六进制 逢十六进一

    十进制—>二/八/十六进制

    口诀

    整数部分,除2/8/16取余;
    小数部分,乘2/8/16取整

    例:23.25转换成二进制为10111.01

    二/八/十六进制—>十进制

    口诀

    按权值对应相乘再相加

    源码,补码,反码

    原码,补码,反码为了让计算机识别更加清楚,采用二进制的方法;
    开头第一个为符号位,先要明白符号位的作用:

    0代表正数
    1代表负数

    记忆方法

    正数------原码,补码,反码一样
    负数------知道原码,先求反码(1换成0,0换成1),再用反码加1为补码

    展开全文
  • 一个用C#写的,在WM6下用的十进制、十六进制二进制计算器。 可以在进制之间转换,带简单的逻辑运算。 不支持小数。 分辨率240X320。 在HTC S600上调试通过。 当时写这个计算器的目的是为调试串口通讯,计算检验和...
  • 计算器的转换 手动转换 102,8 16。 28 16 模型向外除全取余 模型向内展开相加 转载于:https://www.cnblogs.com/Kare/p/4303151.html

    计算器的转换

     

    手动转换

    10转2,转8  转16。

    2转8  转16

     

    模型向外除全取余

    模型向内展开相加

    转载于:https://www.cnblogs.com/Kare/p/4303151.html

    展开全文
  • 二进制十进制十六进制转换 可帮助手动换算IPV4和IPV6自由转换 无须计算器就可以快速的算出 十进制 二进制十六进制的转换
  • 论坛上看到好多帖子在讨论各种进制...这里简单写了一个各种进制之间的转换函数,当然目前仅实现了二进制,八进制,十进制和十六进制,而且关于扫描输入这块也并非完善,只是简单提供一个reference code,其他有兴趣的朋
  • vb做界面的二进制计算器。可以自己在写上十六进制和八进制转换!
  • 一:最快的方法自然是 用计算器,依次:开始>附件>计算器>查看>科学型 就可以打开科学计算器 例1:二进制 101010 十进制 方法:点一下二进制,输入101010,点一下十进制 得出结果42 二:笔算,各种进制 先成十...
  • 进制转二进制/十六进制我觉得最简单也最方便的办法就是直接用计算器算了。 如果不依赖工具,那我们要如何去计算呢。 先来说说二进制。最多见的是短除法。所谓短除法大家可以去看看...
  • 十六进制计算器

    2013-04-23 15:52:30
    MFC大作业,十六进制计算器。而且要用到二进制转换。
  • 个人原创软件,MFC界面,可以任意转换64bit数据到2进制、10进制、16进制,支持取位、移位、大小端转换、加、减、乘、除、取余、与、或、非计算,支持Unicode、ANSI、UTF-8编码相互转换,支持MD5-32/MD5-16、CRC32/...
  • 万能的二进制计算器,可以在八进制,十六进制,十进制,二进制之间转换
  • 进制转换计算器.exe

    2021-03-09 23:37:20
    自己闲来无事做了一个基于C语言的进制转换器,可在十进制、十六进制二进制中任意转换,方便自己平时在写代码时候的推算。
  • Radix 十进制,二进制,八进制,十六进制数相互转换的计算器,采用 Rxbinding实现 用到的开源库 RxJava 2.x RxAndroid butterknife RxBinding 界面预览 APK下载 CoolApk GooglePlay
  • 基于MFC的进制转换计算器使用Visual C++ 6.0 (C++)环境编写,在二进制、八进制、十六进制之间能相互进行转换。可以在复选框中选择输入数据加进制符号或转换结果加进制符号等。
  • 可以在十进制,十六进制,八进制,二进制之间转换运算,是一个不错的小软件
  • 计算器能够实现二进制、八进制、十进制和十六进制的相互转换;二进制、八进制、十进制和十六进制的加减乘除运算;以及十进制的简单科学计算:sin,cos,tan,sqrt,ln,exp。
  • 花了1个多小时写的,有一定的实用性和健壮性,挺有成就感的。...3.十进制转其他进制,使用了一套逻辑,一个方法,简单、可靠 4.增加了时间戳,程序运行结束时,会显示用时。调试程序时输入较大的数字时,输...
  • 生活中我们常常采用的是十进制,但计算机却习惯于二进制数。为了避免面对繁杂的01串,展现给程序猿操作的...同样的,十进制转十六进制也是一样的道理。 二.十六进制与二进制之间的快速转换 十六进制与二进制之间存在特.
  • 进制自动转换计算器

    2015-09-26 23:19:26
    进制转换自动关机计算器,支持二进制,八进制,十进制和十六进制之间相互转换,软件简介,使用方便。 程序员使用计算取
  • 必须实现的数制类型有二进制、八进制、十进制和十六进制四种。 2、基本要求: (1)使用Spinner 控件,列出四种数制类型,即:二进制、八进制、十进制和十六进制; (2)“数值”输入框,不使用Android系统提供的输入...
  • 使用VB编写的进制转换器,支持32位位宽...1. 十进制 十六进制 二进制 2. 左移 右移操作 (新增功能) 3. 连续地与操作, 或操作, 异或操作 (新增功能) 4. 统计结果数值中1的个数用与辅助测试奇偶校验 (新增功能)
  • 设计初衷: 作为一名嵌入式程序员,进制转换是入门必修课,而学习计算机也是必须要懂的最基础...编写一个程序,实现二进制、八进制、十进制、十六进制的相互转换。 提示:输入的数值后面的字母表示进制数,56D便是...
  • 文章目录概念说明工具使用进位计数制的概念二进制 转 十进制八进制 转 十进制十六进制转十进制十进制 转(二、八、十六进制)十进制 转 二进制十进制 转 八进制十进制 转 十六进制二进制 转 (八、十六进制二进制 ...
  • 使用VB编写的进制转换器,支持32位...1. 十进制 十六进制 二进制 2. 左移 右移操作 3. 连续地与操作, 或操作, 异或操作 4. 统计结果数值中1的个数用与辅助测试奇偶校验 6. 输入格式限制(正则表达式)(新增)
  • 唯美计算器,可用于解决windows自带计算器不能进行小数的多进制之间转换问题,适用于大学计算机基础课程中数制转换中小数的、八、十、十六进制转换。
  • 程序员二进制计算器 v1.36

    热门讨论 2014-07-16 16:21:43
    [程序员二进制计算器 v1.36 帮助] 一 用法 在底部框中输入要计算的表达式,会即时显示计算结果,当无结果时说明表达式输入有误。 按回车键保存该次输入、清空输入框,并显示详细结果,包括可能有的错误信息。 ...
  • 实现算术加、减、乘、除等基本运算; 实现三角函数的运算、对数运算、指数运算、阶乘等科学运算;...能实现基础进制转换(二进制、八进制、十进制、十六进制); 实现计算表达式及结果的保存,便于用户检查计算结果;
  • 一个很实用的小工具,能够将十六进制转换为十进制及二进制。这个是最新的汉化版,包含IP地址字段和字节序翻转按钮。可以在简单模式及高级模式之间切换,在寄器ABC执行操作,结果将存储在寄存器中。适用平台:WINDOWS...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 210
精华内容 84
关键字:

二进制转十六进制计算器