-
2020-10-04 15:40:33
Android Studio简易进制转换计算器
1、问题描述。
设计并实现一个数制转换器,能够对输入的任- -进制类型的数值转换为指定的数制类型的数值。必须实现的数制类型有二进制、八进制、十进制和十六进制四种。
2、基本要求:
(1)使用Spinner 控件,列出四种数制类型,即:二进制、八进制、十进制和十六进制;
(2)“数值”输入框,不使用Android系统提供的输入面板,进行数值输入;且只能是整数数值;
布局代码:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="进制转换器" android:textSize="35sp" android:textColor="#9900AA"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="输入数据:" android:textSize="30sp" android:textColor="#99CCAA"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/tv_1" android:layout_width="125dp" android:layout_height="35dp" android:text="进制类型:" android:textSize="25sp" android:textColor="#000" /> <Spinner android:id="@+id/spinner1" android:layout_width="240dp" android:layout_height="35dp" android:textSize="30sp" /> </LinearLayout> <EditText android:id="@+id/et_shuru" android:layout_width="match_parent" android:layout_height="wrap_content"></EditText> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="输出数据:" android:textSize="30sp" android:textColor="#99CCAA"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/tv_2" android:layout_width="125dp" android:layout_height="35dp" android:text="进制类型:" android:textSize="25sp" android:textColor="#000" /> <Spinner android:id="@+id/spinner2" android:layout_width="240dp" android:layout_height="35dp" android:textSize="30sp" /> </LinearLayout> <EditText android:id="@+id/et_shuchu" android:layout_width="match_parent" android:layout_height="wrap_content"></EditText> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/btn_0" android:layout_width="70dp" android:layout_height="35dp" android:text="0" android:background="@drawable/btn_1" /> <Button android:id="@+id/btn_1" android:layout_width="70dp" android:layout_height="35dp" android:text="1" android:background="@drawable/btn_1" /> <Button android:id="@+id/btn_2" android:layout_width="70dp" android:layout_height="35dp" android:text="2" android:background="@drawable/btn_1" /> <Button android:id="@+id/btn_3" android:layout_width="70dp" android:layout_height="35dp" android:text="3" android:background="@drawable/btn_1" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/btn_4" android:layout_width="70dp" android:layout_height="35dp" android:text="4" android:background="@drawable/btn_1" /> <Button android:id="@+id/btn_5" android:layout_width="70dp" android:layout_height="35dp" android:text="5" android:background="@drawable/btn_1" /> <Button android:id="@+id/btn_6" android:layout_width="70dp" android:layout_height="35dp" android:text="6" android:background="@drawable/btn_1" /> <Button android:id="@+id/btn_7" android:layout_width="70dp" android:layout_height="35dp" android:text="7" android:background="@drawable/btn_1" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/btn_8" android:layout_width="70dp" android:layout_height="35dp" android:text="8" android:background="@drawable/btn_1" /> <Button android:id="@+id/btn_9" android:layout_width="70dp" android:layout_height="35dp" android:text="9" android:background="@drawable/btn_1" /> <Button android:id="@+id/btn_A" android:layout_width="70dp" android:layout_height="35dp" android:text="A" android:background="@drawable/btn_1" /> <Button android:id="@+id/btn_B" android:layout_width="70dp" android:layout_height="35dp" android:text="B" android:background="@drawable/btn_1" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/btn_C" android:layout_width="70dp" android:layout_height="35dp" android:text="C" android:background="@drawable/btn_1" /> <Button android:id="@+id/btn_D" android:layout_width="70dp" android:layout_height="35dp" android:text="D" android:background="@drawable/btn_1" /> <Button android:id="@+id/btn_E" android:layout_width="70dp" android:layout_height="35dp" android:text="E" android:background="@drawable/btn_1" /> <Button android:id="@+id/btn_F" android:layout_width="70dp" android:layout_height="35dp" android:text="F" android:background="@drawable/btn_1" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/btn_CE" android:layout_width="70dp" android:layout_height="35dp" android:text="CE" android:background="@drawable/btn_1" /> <Button android:id="@+id/btn_js" android:layout_width="70dp" android:layout_height="40dp" android:text="计算" android:background="@drawable/btn_1" /> </LinearLayout> </LinearLayout>
按钮按压效果(btn_1.xml)代码
在这里插入代码片<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <shape> <solid android:color="#CC7A00"/> <corners android:radius="10dp"/> </shape> </item> <item android:state_pressed="false"> <shape> <solid android:color="#FF9900"/> <corners android:radius="10dp"/> </shape> </item> </selector>
主代码(MainActivity)
package com.example.hzljinzhi; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.Spinner; public class MainActivity extends AppCompatActivity { Spinner spinner1,spinner2; EditText et_shuru,et_shuchu; Button btn_CE,btn_js; int ids[]={R.id.btn_0,R.id.btn_1,R.id.btn_2,R.id.btn_3,R.id.btn_4,R.id.btn_5, R.id.btn_6,R.id.btn_7, R.id.btn_8,R.id.btn_9,R.id.btn_A,R.id.btn_B,R.id.btn_C,R.id.btn_D,R.id.btn_E,R.id.btn_F}; String temp=null,num1=null,num2=null,num3=null,num4=null;int k; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn_CE=findViewById(R.id.btn_CE); btn_js=findViewById( R.id.btn_js); btn_CE.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { et_shuru.setText(""); et_shuchu.setText(""); } }); for(int i=0;i<ids.length;i++){ Button btn = findViewById(ids[i]); if(btn != null) btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { switch (v.getId()){ case R.id.btn_0: et_shuru.setText(et_shuru.getText()+"0"); break; case R.id.btn_1: et_shuru.setText(et_shuru.getText()+"1"); break; case R.id.btn_2: et_shuru.setText(et_shuru.getText()+"2"); break; case R.id.btn_3: et_shuru.setText(et_shuru.getText()+"3"); break; case R.id.btn_4: et_shuru.setText(et_shuru.getText()+"4"); break; case R.id.btn_5: et_shuru.setText(et_shuru.getText()+"5"); break; case R.id.btn_6: et_shuru.setText(et_shuru.getText()+"6"); break; case R.id.btn_7: et_shuru.setText(et_shuru.getText()+"7"); break; case R.id.btn_8: et_shuru.setText(et_shuru.getText()+"8"); break; case R.id.btn_9: et_shuru.setText(et_shuru.getText()+"9"); break; case R.id.btn_A: et_shuru.setText(et_shuru.getText()+"A"); break; case R.id.btn_B: et_shuru.setText(et_shuru.getText()+"B"); break; case R.id.btn_C: et_shuru.setText(et_shuru.getText()+"C"); break; case R.id.btn_D: et_shuru.setText(et_shuru.getText()+"D"); break; case R.id.btn_E: et_shuru.setText(et_shuru.getText()+"E"); break; case R.id.btn_F: et_shuru.setText(et_shuru.getText()+"F"); break; } } }); } et_shuru=findViewById(R.id.et_shuru); et_shuchu=findViewById(R.id.et_shuchu); spinner1=(Spinner)findViewById(R.id.spinner1); spinner2=(Spinner)findViewById(R.id.spinner2); //建立数据源 String[] mltems = getResources().getStringArray(R.array.data); ArrayAdapter<String>adapter= new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,mltems); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //绑定Adapter到控件 spinner1.setAdapter(adapter); spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { switch (pos){ case 0: k=2;setEnabled(2);break; case 1: k=8;setEnabled(8);break; case 2: k=10;setEnabled(10);break; case 3: k=16;setEnabled(16);break; } } @Override public void onNothingSelected(AdapterView<?> parent) { } }); spinner2.setAdapter(adapter); spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, final int pos, long id) { switch (pos){ case 0: btn_js.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { temp = et_shuru.getText().toString(); num3 = Integer.valueOf(temp, k).toString();//转换为十进制; num1 = Integer.toBinaryString(Integer.parseInt(num3)); et_shuchu.setText(num1); } });break; case 1: btn_js.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { temp = et_shuru.getText().toString(); num3 = Integer.valueOf(temp, k).toString();//转换为十进制; num2 = Integer.toOctalString(Integer.parseInt(num3)); et_shuchu.setText(num2); } });break; case 2: btn_js.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { temp = et_shuru.getText().toString(); num3 = Integer.valueOf(temp, k).toString();//转换为十进制; et_shuchu.setText(num3); } });break; case 3: btn_js.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { temp = et_shuru.getText().toString(); num3 = Integer.valueOf(temp, k).toString();//转换为十进制; num4 = Integer.toHexString(Integer.parseInt(num3)); et_shuchu.setText(num4); } });break; } } @Override public void onNothingSelected(AdapterView<?> parent) { } }); } public void setEnabled(int count){ int i =0,size = Math.min(count,ids.length); for( i=0;i<size;i++){ Button btn = findViewById(ids[i]); if(btn != null){ btn.setEnabled(true); } } for( i=size;i<ids.length;i++){ Button btn = findViewById(ids[i]); if(btn != null){ btn.setEnabled(false); } } } }
Spinner 控件的数据源(jinzhi.xml)
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="data"> <item>二进制</item> <item>八进制</item> <item>十进制</item> <item>十六进制</item> </string-array> </resources>
一个小白第一次写博客,如果大家发现我有什么错误和不足的地方,欢迎指导,谢谢!
更多相关内容 -
十六进制计算器
2021-06-10 07:24:30十六进制计算器是一款多功能进制转换计算工具,包含了十进制、八进制、十六进制、ASCII码还有二进制等内容计算,可以随时输入数值进行转换,支持后退到上一步,也可以一键清理计算内容,使用方法简单,支持多款安卓...十六进制计算器是一款多功能进制转换计算工具,包含了十进制、八进制、十六进制、ASCII码还有二进制等内容计算,可以随时输入数值进行转换,支持后退到上一步,也可以一键清理计算内容,使用方法简单,支持多款安卓手机下载使用,占手机内存少,西西下载使用哦!
十六进制计算器简介:
功能强大且完全免费使用。鉴于很多电子信息工程、通信工程、计算机等相关专业的同学,在学习或科研中经常需要在二进制、八进制、十进制、十六进制之间进行数制转换。而该软件界面清爽,体积小巧,运行稳定,支持各进制的相互转换,本软件基于此需求出发。
十六进制计算器功能:
1.储存计算历史记录以便后续计算使。
2.能够进行加,减,乘,除和多种进制格式的数字运算;
3.编辑数字或运算符后自动更新计算结果,减少额外的步骤;
4.十六进制计算器可以帮助你在汇编,以及编程过程中加快效率;
5.进制也就是进位制,是人们规定的一种进位方法。
6.对于任何一种进制---X进制,就表示某一位置上的数运算时是逢X进一位。
7.十进制是逢十进一,十六进制是逢十六进一, 二进制就是逢二进一,以此类推,x进制就是逢x进位。
十六进制计算器更新:
1、修复已知的bug
2、优化了软件功能
-
16进制计算器为16进制计算软件,能为用户提供多的方便
2021-07-26 08:47:5016进制计算器简介16进制计算器是现在市场使用频率高的软件,是一款可编程的多精度16进制计算器软件,使用这款软件不仅仅能够进行逻辑和数学的转换计算,而且还能直接支持16进制和2进制转换为10进制及8进制的结果,并...16进制计算器为16进制计算软件,不仅仅能够进行16进制的计算,而且还能进行编程有效为用户们提供多的方便,详细情况就请大家认真阅读下文。
16进制计算器简介
16进制计算器是现在市场使用频率高的软件,是一款可编程的多精度16进制计算器软件,使用这款软件不仅仅能够进行逻辑和数学的转换计算,而且还能直接支持16进制和2进制转换为10进制及8进制的结果,并能够把字符串转换为16进制值;在该软件中还能支持数模转换、基础测试、虚拟随机数生成、键转换模块乘法、素性测试、模块逆运算、随机数生成、密匙交换、复杂数值计算和hash值计算等,达到方便使用者操作的目的。
16进制计算器的使用方法
当广大用户需要进行逻辑值换算的时候,只用打开该软件后直接选择用户们需要实际使用的计算方法,并需要能够输入操作者们需要进行计算的16进制,再直接进行点击=号,软件就能自动来转换并把结果直接显示出来,让整个转换变得更加方便和快捷。
当广大操作者们使用该软件进行转换时候,也是打开该软件后进行选择相应的转换方式,举例而言在进行转换时候,如果操作者进行输入十六进制,那么软件进行自动转换后就能直接显示出选择的十进制结果、八进制结果甚至是二进制的结果,而在整个转换过程中不用操作者们手动进行干预。
16进制计算器的特色亮点
软件能够进行数模的转换。大家知道数模转换在实际使用中需求相对多,只有能够好的进行数模转换,才能满足广大使用者们的需求,也才能有效提升使用者们的整个工作效率。
软件能够进行相关的基础测试。虽然进行基础测试的操作在市场中需求低,但是对于这种软件而言,最好也能够带有这样的功能,如果不带有这样的功能当碰到需要进行基础测试时候,还要进行安装其他软件那就无疑增加了操作的麻烦性。更多下载体验,请前往QQ下载站
-
利用Windows自带的计算器计算十六进制(八进制、二进制)数据
2019-05-16 22:53:15有时需要对十六进制数做加减乘除,某些手机app能实现此功能,但使用起来未免有些麻烦,其实...提示:HEX是十六进制,DEC是十进制,OCT是八进制,BIN是二进制,大家也可以根据自己的实际需要选择是哪一种进制。 ... -
HexaCalc:三个选项卡式计算器,用于使用Xcode在Swift中内置的iOS的十进制,十六进制和二进制。 在三个选项...
2021-03-28 03:29:47对于十六进制和二进制计算器,由于它们使用整数转换,因此限制为64位,但是即使其他两个计算器屏幕显示错误,十进制计算器也允许您使用较大的数字。 轻按计算器输出标签会导致当前显示的数字被复制到手机的剪贴板... -
Binary-Calculator-JavaScript:for适用于所有设备的二进制操作的便捷计算器。 :chains:...
2021-02-05 04:52:27链接: : 行动应用程式: : 官方Google Play商店下载链接...您可以在以下设备上使用二进制计算器: :mobile_phone: :laptop: :desktop_computer: (Android / iOS等) :mobile_phone: (Chrome,Firefox,Edge,Saf -
二进制是如何将加减乘除变换为加法实现的
2021-07-28 07:05:09二进制是如何将加减乘除变换为加法实现的?加法是如何由逻辑运算与、或、异或来实现的?关注者151被浏览10205查看全部13个回答匿名用户5分钟教会你古中国人古埃及人和计算机如何用二进制做乘除法 。 有空整理找的“1... -
16进制,8进制,2进制加减乘除计算软件和补码计算软件(收藏)
2020-03-24 13:12:13编程计算中常用到16进制,8进制,2进制的加减乘除运算,这里搜集了几个不错的进制计算器: 1)16进制加法,减法,乘法,除法在线计算器 在16进制计数中,A=10,B=11,C=12,D=13,E=14,F=15。 例如:A+B=10H+5H=21(dec)=... -
Android——一个神奇的计算器APP
2022-03-14 15:19:07一个神奇的计算器APP 中缀运算 效果视频 自定义圆形TextView 效果图 建立attr文件 绘制圆形 字符拼接 清空栈内元素 运算执行 手势监听 入栈&&出栈 运算结果 小数位判断 运算代码 任意... -
不到1M的良心之作 连微积分都能算的计算器APP
2021-06-10 14:17:20二来,计算器APP也算得上是流氓软件的重灾区,不少计算器APP都会加上乱七八糟的功能乃至广告。那么有没有什么良心而功能又不失强大的计算器APP?这就给大家介绍一款“Calci计算器”。这款Calci计算器来自于个人... -
App Inventor编程开发集锦2-计算器-第2课-实现常规操作
2021-07-18 04:02:01第2课 代码编写——实现常规操作这个应用最麻烦的地方就是用户操作的不确定性,他可能随意地、想当然地按下某个键,就像使用一个实物计算器一样,因此我们要尽可能地在功能上接近于实物计算器,给用户一种良好的使用... -
二进制编码的十进制
2020-08-25 14:32:35二进制编码的十进制数是由于计算机CPU(中央处理单元)的二进制性质而没有舍入错误的精确数字。 这使得bcd数据类型特别适合于财务和簿记目的。 BCD calculations have been present in computer science for quite ... -
卡西欧计算器.apk
2019-12-28 16:16:42卡西欧计算器功能强大,不仅能积分,复数,二进制计算,还能解高次方程或高次方程组,还可画图,更多的功能可自行摸索。 -
不到1M的良心之作!连微积分都能算的计算器APP_TOM科技
2021-06-10 12:04:53二来,计算器APP也算得上是流氓软件的重灾区,不少计算器APP都会加上乱七八糟的功能乃至广告。那么有没有什么良心而功能又不失强大的计算器APP?这就给大家介绍一款“Calci计算器”。Calci软件版本:1... -
子网及掩码计算器--两个经典绿色工具
2018-01-23 15:01:17子网计算器、掩码计算器--IP十进制、二进制转换计算等 -----经典绿色工具 -
统计学计算器
2021-07-15 01:02:07统计学计算器是一款便捷的计算器服务软件,软件支持多种程序使用,拥有一键计算,在线求和等多种强大的功能,中小学生可以通过该软件随时随地的在线计算,提高了自己的效率,为你营造了一种轻松的学习氛围,感兴趣的... -
零基础编程教学实录-001 二进制与计算机
2019-09-06 23:30:41长源:15我:十进制,有10个数字,而二进制只有2个数字,如果用5个手指来表示二进制的数字,你觉得是能表达的最大数字,是十进制的大,还是二进制的大?长源:(想了想)不知道我:那我们接下来用5个手指表示二进制... -
卡西欧CASIO计算器
2021-06-25 03:25:23游戏概述卡西欧CASIO计算器app是一款计算功能极其专业且强大的计算器软件,卡西欧CASIO计算器高级版支持各种算法,无论你是基础用户还是高级用户如工程师、程序员、数学专业学生都可以使用此款软件,满足用户的多种... -
NeoCal 全能计算器 V2.0.2
2021-06-10 04:04:21软件简介NeoCal V2.0.2 for Palm OS 5NeoCal是一款获奖的高级全能计算器。NeoCal设计的菜单使让它像一个真正的计算器那样工作,并且要比真正的更好用。用户可以使用触摸键盘设计,并且软件集220 种包括金融、统计、... -
科学计算器软件有哪些?2020好用的科学计算器推荐
2021-07-06 07:09:56不同于一般计算加减乘除的普通型计算器,科学计算器是还能计算各种数学函数、线性运算、进制转换等功能的专业计算工具,能够帮助我们快速计算出所需要的结果,那么,你知道有哪些好用的科学计算器软件吗?... -
App Store 上的“NCalc科学计算器+”
2021-06-23 01:16:12calculator主要计算器功能•自然显示使您可以在用纸,小数,根,指数等输入公式时输入公式,以显示与教科书相同的公式。•键盘布局的设计与计算器82 cn plus,82 cn x,991 cn plus,991 cn x,350 cn plus,350 ... -
编译原理实验——不同进制间四则运算计算器
2020-12-20 23:56:10一、实验目的 1、实现一个词法分析程序,将输入字符串流分解成单词流供语法分析使用。(注意:如果单词输入错误,必须有提示) 2、在词法分析的基础上实现一个语法分析程序,对词法...十进制整数|十进制小数|八进制整 -
原码,反码,补码相互转换在线计算器_三贝计算网_23bei.com
2021-01-17 17:02:40输入已知数据变量、选择已知变量的类型(支持原码(10进制)、原码(16进制)、原码(2进制)、反码(2进制)、反码(16进制)、补码(2进制)、补码(16进制)等已知变量),点击计算按钮,可快速求出其原码、反码、补码值。... -
斐波那契(Fibonacci)数列计算器设计
2022-01-25 14:01:58斐波那契(Fibonacci)数列计算器设计。 2. 实验目的 要求使用合适的逻辑电路的设计方法,通过工具软件 logisim 进行斐波那契(Fibonacci)数列计算器设计和验证,记录实验结果,验证设计是否达到要求。 通过斐波那契... -
角度计算器度分秒在线
2021-06-23 07:59:49角度计算器度分秒在线是一款数学公式计算器软件,对于想要找到正确的答案,计算器可以直接帮助你,你只需要按照要求输入对应的数字,计算器就会帮你准确快速的算出答案,现在手机app下载就能长期免费使用!... -
Math_Camera_FX_Calculator_991_Solve_Taking_Photo_Premium_v4.4.3.apk
2020-02-14 13:18:30而且,您可以在方程式计算器中进行十进制计算和乘方计算。 and数学和物理公式 这是一个完美的应用程序,提供了数学和物理的所有基本公式。对于所有高中或大学的学生和工程师来说,寻找任何简单或复杂的公式都... -
度数换算计算器
2021-02-12 02:13:27度数换算计算器app是一款简洁实用的多功能计算器。温度换算器app提供温度的计算转换、汇率计算、个税计算、大小写转换等功能,非常实用。软件介绍度数换算计算器app是生活中会用到的应用工具。度数换算计算器app可以... -
IP地址计算器
2021-06-18 06:36:06如果用二进制表示IP地址的话,A类IP地址就由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”。A类IP地址中网络的标识长度为8位,主机标识的长度为24位。 一个B类IP地址是指,在IP地址的四段号码中...