实现功能
建立数制转换对话框,在左边输入一个十进制整数和一个二到十六之间的转换后进制数,单击“转换”按钮能在右边得到十进制数转换后字符串,单击“退出”按钮退出对话框。

程序调用了trdec. m函数文件,该函数的作用是将任意十进制整数转换为二到十六进字符串。trdec. m函数文件如下:

function dec = trdec(n, b)ch1 = '0123456789ABCDEF';       %十六进制的16个符号k= 1;while n~= 0                     %不断除某进制基数取余直到商为0p(k) = rem(n,b);n= fix(n/b);k=k+ 1;endk = k- 1;strdec='';while k >= 1                      %形成某进制数的字符串kb= p(k);strdec = strcat(strdec,ch1(kb+1:kb+1));k=k- 1;enddec= strdec ;
end

主程序如下:

clc;clear
hf = figure( 'Color',[0,1,1], 'Position', [100, 200, 400, 200],...'Name', '数制转换', 'NumberTitle','off', 'MenuBar','none');
uicontrol(hf,'Style', 'Text', 'Units', 'normalized',...'Position',[0.05,0.8,0.45,0.1],'Horizontal','center',...'String','输 入 框','Back',[0,1,1]);
uicontrol(hf, 'Style', 'Text', 'Position',[0.5,0.8,0.45,0.1],...'Units', 'normalized', 'Horizontal', 'center',...'String','输 出 框','Back',[0,1,1]);
uicontrol(hf, 'Style', 'Frame', 'Position',[0.04,0.33,0.45,0.45],...'Units', 'normalized', 'Back',[1,1,0]);
uicontrol(hf, 'Style', 'Text', 'Position',[0.05,0.6,0.25,0.1],...'Units', 'normalized', 'Horizontal', 'center',...'String', '十进制数' ,'Back', [1,1,0]);
uicontrol(hf, 'Style', 'Text', 'Position',[0.05,0.4,0.25,0.1],...'Units', 'normalized', 'Horizontal', 'center',...'String','二-六进制','Back',[1,1,0]);
he1 = uicontrol(hf, 'Style','Edit','Position',[0.25,0.6,0.2,0.1],...'Units', 'normalized', 'Back',[0,1,0]);
he2 = uicontrol(hf, 'Style', 'Edit', 'Position',[0.25,0.4,0.2 0.1],...'Units', 'normalized', 'Back',[0,1,0]);
uicontrol(hf, 'Style', 'Frame', 'Position',[0.52,0.33,0.45,0.45],...'Units', 'normalized', 'Back',[1,1,0]);
ht = uicontrol(hf, 'Style', 'Text', 'Position',[0.6,0.5,0.3,0.1],...'Units', 'normalized', 'Horizontal','center','Back',[0,1,0]);
COMM =['n= str2num(get(he1, "String"));','b = str2num(get(he2,"String"));',...'dec = trdec(n,b);','set(ht,"string",dec);'];
uicontrol(hf, 'Style','Push','Position',[0.18,0.1,0.2,0.12],...'String', '转换','Units', 'normalized','Call', COMM);
uicontrol(hf, 'Style', 'Push', 'Position',[0.65,0.1,0.2,0.12],...'string', '退出','Units', 'normalized', 'Call', 'close(hf)');


这运行的结果显然不符合我要的结果,我发现我代码写的没有问题,没有错误没有警告,然后我试着单步调试,发现从“ 输出框 ”那里代码执行了,但是没有效过,然后发现属性名的顺序不一样

就是position和units 换了位置,就执行了没有效果,然后后面的代码都是position在前面,然后我代码给改过来了。

clc;clear
hf = figure( 'Color',[0,1,1], 'Position', [100, 200, 400, 200],...'Name', '数制转换', 'NumberTitle','off', 'MenuBar','none');
uicontrol(hf,'Style', 'Text', 'Units', 'normalized',...'Position',[0.05,0.8,0.45,0.1],'Horizontal','center',...'String','输 入 框','Back',[0,1,1]);
uicontrol(hf, 'Style', 'Text','Units', 'normalized',...'Position',[0.5,0.8,0.45,0.1], 'Horizontal', 'center',...'String','输 出 框','Back',[0,1,1]);
uicontrol(hf, 'Style', 'Frame','Units', 'normalized',...'Position',[0.04,0.33,0.45,0.45], 'Units', 'normalized', 'Back',[1,1,0]);
uicontrol(hf, 'Style', 'Text','Units', 'normalized', 'Position',[0.05,0.6,0.25,0.1],...'Horizontal', 'center',...'String', '十进制数' ,'Back', [1,1,0]);
uicontrol(hf, 'Style', 'Text', 'Units', 'normalized','Position',[0.05,0.4,0.25,0.1],...'Horizontal', 'center',...'String','二-六进制','Back',[1,1,0]);
he1 = uicontrol(hf, 'Style','Edit','Units', 'normalized','Position',[0.25,0.6,0.2,0.1],...'Back',[0,1,0]);
he2 = uicontrol(hf, 'Style', 'Edit','Units', 'normalized', 'Position',[0.25,0.4,0.2 0.1],...'Back',[0,1,0]);
uicontrol(hf, 'Style', 'Frame', 'Units', 'normalized','Position',[0.52,0.33,0.45,0.45],...'Back',[1,1,0]);
ht = uicontrol(hf, 'Style', 'Text','Units', 'normalized', 'Position',[0.6,0.5,0.3,0.1],...'Horizontal','center','Back',[0,1,0]);
COMM =['n= str2num(get(he1, "String"));','b = str2num(get(he2,"String"));',...'dec = trdec(n,b);','set(ht,"string",dec);'];
uicontrol(hf, 'Style','Push','Units', 'normalized','Position',[0.18,0.1,0.2,0.12],...'String', '转换','Call', COMM);
uicontrol(hf, 'Style', 'Push','Units', 'normalized','Position',[0.65,0.1,0.2,0.12],...'string', '退出', 'Call', 'close(hf)');


发现我把代码改了就好了。

就把 units 属性放在position 前面了,我后面又验证了一下,发现 二者属性反过来,总有一次代码是不成功的,而且没有错误,不知道是不是一个bug,通过一个简单的GUI控制界面,发现bug还挺多,不过,最后功能还是实现了

基于MATLAB实现进制数转换相关推荐

  1. 编程实现将一个N进制数转换成M进制数

    问题:编程实现将一个N进制数转换成M进制数.(c/c++.Java.Javascript.C#.Python) 1.Python 手写算法版 def conversion_num(num, src, ...

  2. java里的进制转换函数_基于Java中进制的转换函数详解

    十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinar ...

  3. PC_十进制转二进制速算+常用的2进制和10进制数/转换关系

    文章目录 常用的2进制和10进制数/转换关系

  4. 小白自学python的编程之路——实现进制数转换(十进制和二进制和八进制的转换)

    小白自学python的编程之路--实现进制数转换 十进制转二进制(整数) 直接上代码,很简单,一些小注意地方我标注了 c=[] a=input("请输入十进制数字:") a=int ...

  5. QT 16进制数转换成QString显示

    /*  * 16进制数转换成QString显示  */ QString hexToString(unsigned char *in, int len) { int i; unsigned char i ...

  6. 基于matlab的正交幅度调制系统,基于matlab多进制正交幅度调制系统的仿真终稿.doc...

    基于matlab多进制正交幅度调制系统的仿真终稿 通信系统综合设计与实践 题目基于Matlab的多进制正交幅度调制系统的仿真 院(系)名称信院通信系 专业名称通信工程 学生姓名 学生学号 指导教师 2 ...

  7. 51单片机c语言16进制数转换10进制数,51单片机C语言里 怎样将16进制 直接化成 10进制...

    满意答案 xzwyq 2013.10.13 采纳率:44%    等级:12 已帮助:16962人 我这儿有一个进制转换的程序,你可以参考一下: #include #include #include ...

  8. 常用进制数转换(二进制、八进制、十进制、十六进制)【数电笔记】

    一.二进制数与十进制数之间的转换 二.二进制数与八进制数.十六进制数之间的转换 常用各进制数的转换表:

  9. 10进制数转换成16进制

    十六进制的元素个数固定,而且还有对应编号,可以用查表法.一个int类型十进制数在32位操作系统中占4个字节,32位2进制数取它的低8位,例如60,在内存中以二进制数0011 1100存放,而一个十六进 ...

最新文章

  1. android下调试声卡驱动之概述
  2. python处理声音
  3. ESP8266 问题
  4. 闰年的判断方法_C语言100题 判断这一天是一年中的第几天 壁纸 火影
  5. 4 在vCenter Server安装View Composer组件
  6. Intel Realsense D435 深度图为什么会出现残影?(Invalid Depth Band 无效深度带)(黑洞)
  7. 玩转mini2440开发板之【编译烧录rootfs根文件系统全过程记录】
  8. .NET CORE(C#) WPF简单菜单MVVM绑定
  9. Java对象内存图三
  10. spark 提交至yarn异常超时 Client cannot authenticate via:[TOKEN, KERBEROS]
  11. 项目Beta冲刺 随笔集合
  12. 详解HTML5网页结构
  13. php删除数据库数据操作日志文件,MSSQL清空日志删除日志文件
  14. 软件测试【个人简历】展示模板
  15. 区块链java开源框架_github上的java三大开源区块链类库?
  16. HTML注释和js注释,js 注释
  17. css 链接设计,css将超链接a设计成按钮样式实例
  18. java shiro教程_shiro教程1(HelloWorld)
  19. 3D变化——旋转的立方体
  20. 外文参考文献找不到页码怎么办?

热门文章

  1. (My)SQL 使用入门
  2. 民航导航技术发展及北斗应用分析
  3. 【车道线检测论文】 LaneNet
  4. MySQL系列---架构与SQL执行流程详解
  5. 现代统计的思想飞跃,因果推断!
  6. armadillo 使用杂记
  7. 0.96寸OLED(二)SPI+DMA刷新OLED
  8. 搭建react项目并配置路由
  9. UPnP的功能和使用
  10. poky: PACKAGECONFIG的用法