把正整型转换成2进制与16进制

发布者:大头玩家最新更新时间:2015-08-07 来源: dzsc关键字:正整型  2进制  16进制 手机看文章 扫描二维码
随时随地手机看文章
原题:Write the function itob(n,s,b) that converts the integer n into a base b character
representation in the string s. In particular, itob(n,s,16) formats s as a hexadecimal integer in s.
要求在同一个程序实现2进制与16进制的转换。
 
程序:把正整型转换成2进制与16进制

把正整型转换成2进制与16进制

把正整型转换成2进制与16进制

 
执行:(第一次flag为b)
把正整型转换成2进制与16进制

总结:
1.对于整型数组,''和数字0用作结束标志时,会把数组里面的数组成员0也当作结束标志,不能正确处理。所以程序用了EOF替代默认的数字0来填充数组的空白成员,这样就能正确处理整数0了。
2.对于算法,不再对两种情况分开写,而是使用一个标志来控制,看起来更紧凑。但是要注意16进制还要进行字母转换。
3.对于需要处理的数字输入,直接用整型数组进行处理更方便。
4.没有写输入交互的部分,还可以更完善。
关键字:正整型  2进制  16进制 引用地址:把正整型转换成2进制与16进制

上一篇:定时器初始化之后,无法更改其值?
下一篇:把过长的行输入缩短换行输出

推荐阅读最新更新时间:2024-03-16 14:27

16进制转换算成10进制程序
16进制转换算成10进制程序 unsigned char d ; //用于显示的10位显示缓存 //======================================================== //16进制to10进制输出子程序:显示数据,起始位,结束位,有无小数点 //======================================================== void output(unsigned long dd,unsigned char s,unsigned char e,unsigned char DIP) { unsigned long div; uns
[单片机]
keil c51如何实现2进制操作
#define LongToBin(n) \ ( (n 21)&0x80 \ (n 18)&0x40 \ (n 15)&0x20 \ (n 12)&0x10 \ (n 9)&0x08 \ (n 6)&0x04 \ (n 3)&0x02 \ (n 0)&0x01 \ ) #define Bin(n) (0x##n##L) 1. \的作用是指下行的内容是接着上行未完成的内容 2. ##的作用是连接字符的作用 例如:0x##11110000##L 替代后0x11110000 将8个十进制数转换为十六进制,L表示长整型数32bits 3.uchar a; a=
[单片机]
STM32串口通信——16进制数形式
一.为什么采用16进制数形式? 首先,需要解释一下串口发送的数据都是unsigned char类型的,说成字符和16进制形式,只是我们采用何种方式展示这些数据。字符形式就是把16进制数通过ASCII表一个一个转成字符的。 一开始接触到的串口程序,就是字符形式的,尤其是STM32中被重构的printf()函数,我就先入为主地选择了字符形式。这样比较人性化,因为啥数据都是平时看到的字符,很直观,但是大大降低了通信效率!比如要发送一个数85,字符形式需要发送’8’+‘5’,而16进制只需要发送0x55。还有一点是负数,字符形式多加了一个’-'号,16进制直接发送有符号数就行了。如果要传输大量的数据,应该采用16进制形式。
[单片机]
用移位减法做4位16进制数除以4位16进制数运算
;只能整数运算及非0运算 ORG 0000H JMP A1 ORG 002BH A1: MOV R0,#0FFH;被除数 MOV R1,#0FFH;被除数 MOV R2,#0;余数 MOV R3,#0;余数 MOV R4,#0;商 MOV R5,#0;商 MOV R6,#03H;除数 MOV R7,#0E8H;除数 MOV 30H,#16 A2: MOV A,R1;先把移低字节移到高字节位 RLC A; MOV R1,A; MOV A,R0;先处理高字节和接收低字节传上来的位字节 RLC A; MOV R0,A; MOV A,R3;把移出来的数处理 RLC A; MOV R3,A; MOV A
[单片机]
51单片机把4位16进制数转成10进制数的方法
2位16进制转10进制,用除以10求商跟余数的方法,即可。 4位16进制数呢?DIV指令只可以对2位16进制数进行除法运算啊,求高手解答。 例如把TH1 TL1的数值转成十进制, 分别存入R4 R3 R2 R1 R0。 ;------------------------------------------------------------------ 下面把这段转换程序,写成子程序的结构,便于网友移植。 ; 程序经过仿真调试通过,如下所示: ;------------------------------------------------------------------ ; MOV R0,
[单片机]
用左移减法做4位16进制数除以216进制数运算
;只能整数运算及非0运算 ORG 0000H JMP A1 ORG 002BH A1: MOV R0,#04H;被除数 MOV R1,#0D2H;被除数 MOV R2,#0;余数 MOV R3,#0;商 MOV R4,#0;商 MOV R5,#34;除数 MOV 30H,#16 A2: MOV A,R1;先把移低字节移到高字节位 RLC A; MOV R1,A; MOV A,R0;先处理高字节和接收低字节传上来的位字节 RLC A; MOV R0,A; MOV A,R2;把移出来的数处理 RLC A; MOV R2,A; CLR C;清C因为减法A=A-C-R5 SUBB A,R5;移出来的数
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved