当前位置: 首页 > news >正文

手机端AIDE编译器安卓多进制转换器软件代码

java代码

packagecom.djzzhq.app;/* 手机编程王APP & AIDE编译器联合出品 官方微信2133688724 微信公众号:手机编程APP 官网:www.shoujibiancheng.com */importandroidx.appcompat.app.AppCompatActivity;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.AdapterView;importandroid.widget.ArrayAdapter;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.Spinner;importandroid.widget.TextView;importandroid.widget.Toast;publicclassMainActivityextendsAppCompatActivity{privateEditTextetInput;privateSpinnerspinnerFrom,spinnerTo;privateTextViewtvResult;// 新增3/9/36/62进制选项privateString[]radixArray={"二进制","三进制","八进制","九进制","十进制","十六进制","三十六进制","六十二进制"};privateintfromRadix=2,toRadix=10;// 62进制字符映射表:0-9,a-z,A-ZprivatestaticfinalStringCHAR62="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);etInput=findViewById(R.id.et_input);spinnerFrom=findViewById(R.id.spinner_from);spinnerTo=findViewById(R.id.spinner_to);tvResult=findViewById(R.id.tv_result);ButtonbtnConvert=findViewById(R.id.btn_convert);ArrayAdapter<String>adapter=newArrayAdapter<>(this,android.R.layout.simple_spinner_item,radixArray);adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);spinnerFrom.setAdapter(adapter);spinnerTo.setAdapter(adapter);spinnerFrom.setOnItemSelectedListener(newAdapterView.OnItemSelectedListener(){@OverridepublicvoidonItemSelected(AdapterView<?>parent,Viewview,intposition,longid){fromRadix=getRadixByPosition(position);}@OverridepublicvoidonNothingSelected(AdapterView<?>parent){}});spinnerTo.setOnItemSelectedListener(newAdapterView.OnItemSelectedListener(){@OverridepublicvoidonItemSelected(AdapterView<?>parent,Viewview,intposition,longid){toRadix=getRadixByPosition(position);}@OverridepublicvoidonNothingSelected(AdapterView<?>parent){}});btnConvert.setOnClickListener(v->convertRadix());}// 映射Spinner选项到对应进制数privateintgetRadixByPosition(intposition){switch(position){case0:return2;case1:return3;case2:return8;case3:return9;case4:return10;case5:return16;case6:return36;case7:return62;default:return10;}}// 核心转换方法:统一转十进制再转目标进制privatevoidconvertRadix(){StringinputStr=etInput.getText().toString().trim();if(inputStr.isEmpty()){Toast.makeText(this,"请输入要转换的数值",Toast.LENGTH_SHORT).show();return;}try{// 输入转十进制longdecimal=strToDecimal(inputStr,fromRadix);// 十进制转目标进制Stringresult=decimalToStr(decimal,toRadix);tvResult.setText("转换结果:"+result);}catch(Exceptione){Toast.makeText(this,"输入数值与原进制不匹配",Toast.LENGTH_SHORT).show();tvResult.setText("转换失败");}}// 自定义任意进制字符串转十进制privatelongstrToDecimal(Strings,intradix)throwsException{if(radix<=16){returnLong.parseLong(s,radix);}longnum=0;s=s.toLowerCase();// 36/62进制统一小写处理for(charc:s.toCharArray()){intindex=CHAR62.indexOf(c);if(index==-1||index>=radix){thrownewException("非法字符");}num=num*radix+index;}returnnum;}// 自定义十进制转任意进制字符串privateStringdecimalToStr(longnum,intradix){if(radix<=16){returnLong.toString(num,radix).toUpperCase();}if(num==0)return"0";StringBuildersb=newStringBuilder();while(num>0){intremainder=(int)(num%radix);sb.append(CHAR62.charAt(remainder));num=num/radix;}returnsb.reverse().toString();}}activity_main.xml代码<?xml version="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:padding="20dp"><!--输入数值--><EditTextandroid:id="@+id/et_input"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="请输入要转换的数值"android:inputType="text"/><!--原进制选择--><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="15dp"android:orientation="horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="原进制:"/><Spinnerandroid:id="@+id/spinner_from"android:layout_width="match_parent"android:layout_height="wrap_content"/></LinearLayout><!--目标进制选择--><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="15dp"android:orientation="horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="目标进制:"/><Spinnerandroid:id="@+id/spinner_to"android:layout_width="match_parent"android:layout_height="wrap_content"/></LinearLayout><!--转换按钮--><Buttonandroid:id="@+id/btn_convert"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:text="转换"/><!--结果显示--><TextViewandroid:id="@+id/tv_result"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:textSize="18sp"/></LinearLayout>

http://www.cnnetsun.cn/news/139963.html

相关文章:

  • 【Linux系统】初探虚拟地址空间
  • vue和springboot框架开发的小程序 健身服务与轻食间平台系统健身减肥系统_xj840td0
  • vue和springboot框架开发的小程序儿童疫苗接种预约医疗提醒系统_5dq9226p
  • 【记录】Rust|Rust开发相关的7个VSCode插件的介绍和推荐指数(2025年)
  • C++小程序编写系列(2)
  • python-flask-django公司企业员工出差报销管理系统_04446nsn
  • Glyph2D 同一个图形根据点云的输入产生不同位置的输出
  • Lombok 注解:简化 Java 代码
  • 别让大数据“全表扫描”掏空你:数据分区策略与分区裁剪的实战心经
  • (转载)真正的缘分,“推背感”都跟强
  • Hadoop生态下的数据预处理:MapReduce实战案例解析
  • 2025 年 CTF 零基础入门全攻略!新手必藏!这种实战网络对抗机会千万别错过!
  • 新手也能轻松建站!VanBlog+cpolar让博客创作和分享更简单
  • vue导出excel文件
  • 基于STM32的自动售货机控制系统设计
  • 液压挖掘机回转能量回收系统设计与仿真
  • android 媒体之 MediaSession
  • 校园网络规划
  • 护眼灯已足够优秀,为何仍需眼调节训练灯?答案藏在近视防控里
  • Visual Studio中的多态
  • MindSpore硬核实战:彻底搞懂自动混合精度(AMP)与函数式训练
  • Java异常处理详解。零基础小白到精通,收藏这篇就够了
  • 基于深度学习YOLOv12的犬种识别检测系统(YOLOv12+YOLO数据集+UI界面+登录注册界面+Python项目源码+模型)
  • 基于深度学习YOLOv11的犬种识别检测系统(YOLOv11+YOLO数据集+UI界面+登录注册界面+Python项目源码+模型)
  • [插电式混合动力车辆][交替方向乘子法(ADMM)结合CVX]插电式混合动力车辆的能源管理:基于凸优化算法用于模型预测控制MPC研究附Matlab代码
  • 【别花冤枉钱】学生党专享!2025年把AI率90%降到10%的“低成本”组合拳(含免费/付费工具避坑指南)
  • 前端Vue制作日历插件FullCalendar,零基础入门到精通,收藏这篇就够了
  • 基于MPC算法的P2构型混合动力汽车能量管理优化策略
  • 德克萨斯大学奥斯汀分校突破:球形利奇量化提升AI图像生成质量
  • 13、Unix 系统管理脚本实用指南(上)