写在前面:

题解是对具体题目的编程实现,不会具体讲解C语言语法。请先大致学习好语法,自己敲敲代码后再看题解(上来就直接看题解的习惯不好哟~)。在每一题的题解之前,会列出本题涉及到的语法知识供参考,可以在教材或其他学习资源找到这些内容学习。

本题的预备知识:

变量的定义与赋值操作

输入(scanf)输出(printf)语句

for、while循环语句

数组的运用

10进制数转换为16位二进制数

成绩

10

开启时间

2020年03月28日 星期六 08:00

折扣

0.8

折扣时间

2020年04月20日 星期一 23:00

允许迟交

关闭时间

2020年04月30日 星期四 23:00

将任一正整数(<65536)转换为 16 位二进制形式。

输入: 正整数

输出: 正整数的 16 位二进制数

友情提示:定义一个整型数组,数组有16个元素,保存变换后的二进制数。

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例 1

144↵

0000000010010000↵

1秒

64M

0

题解

本题给出两种解法:

方法一

初中学过,根据对2的求模取余法,可以将一个十进制数转化为二进制数。只是要注意,先求取出来的余数应该在后,后求取出来的余数应该在前。且本题需要输出一个16位的结果,所以不足的高位应该补上0。那我们可以定义一个数组a,将其内容全部初始化为0,然后从第一位来依次存储余数。只是,最终的输出应该是逆序的!

比较简单,直接上代码了:

#include //导入stdio.h库,里面包含输入输出函数

int main() {

int num;

scanf("%d", &num); //以十进制的形式输入一个整数,存在num内

int a[16] = {0}; //定义一个长度为16的数组a,并全都初始化为0

int i = 0;

/* 求模取余法 */

while (num != 0) {

a[i] = num % 2; //存入余数

num /= 2; //取商继续算

i++;

}

/* 倒序处处16位数字 */

for(i = 15; i >= 0; i--)

printf("%d", a[i]);

printf("\n");

}

关于数组的初始化有一些要注意,在 画一个字母组成的菱形 中的最后有提示,可以看看。

方法二

在 stdlib.h 库中有一个函数叫 itoa(Integer to array)。功能是将一个数字按照规定的格式转换为字符串,具体操作如下:

//将一个值为value的整数,转变为进制是radix的数,并存储在字符串数组s中

itoa(value, s, radix);

那么我们可以直接调用这一函数来实现进制转换,在输出字符串之前补上零即可。至于要补上多少位0,我们需要知道转化成二进制后字符串的长度,可以调用 string.h 库中的 strlen 函数求字符串s的长度,即元素个数,最终我们应该在输出s前输出 16 - strlen(s) 个0。

实现代码如下:

#include //导入stdio.h库,里面包含输入输出函数

#include //导入stdlib.h库,里面包含itoa函数

#include //导入string.h库,里面包含strlen函数

int main() {

int num;

scanf("%d", &num); //以十进制的形式输入一个整数,存在num内

char s[16];

itoa(num, s, 2); //将num转化为二进制数并存储在字符串s中

/* 输出 16 - strlen(s) 个0 */

for(int i = 0; i < 16 - strlen(s); i++)

printf("0");

printf("%s", s);

}

一点补充

不知道你是否还记得,之前学 printf 的时候,其格式符中有一部分是与进制有关的。下面我把它列举出来:

符号

含义

%d / %i

按有符号的十进制整数格式输出

%u

按无符号的十进制整数格式输出an

%x / %X

按有符号的十六进制整数格式输出

%o

按有符号的八进制整数格式输出

使用方法如下图例:

int num = 114;

printf("%d", num); //输出num的10进制值

printf("%o", num); //输出num的8进制值

printf("%x", num); //输出num的16进制值

可以看出,让我们需要将十进制转化为八进制、十六进制输出的时候是很简单的,printf函数就能帮我们直接实现,但是遗憾的是并没有二进制的输出格式符,所以本题需要手算或者调用itoa函数实现。

有任何问题欢迎评论交流,如果本文对您有帮助不妨点点赞,嘻嘻~

end

欢迎关注个人公众号“ 鸡翅编程 ”,这里是认真且乖巧的码农一枚。

---- 做最乖巧的博客er,做最扎实的程序员 ----

旨在用心写好每一篇文章,平常会把笔记汇总成推送更新~

16位转10位c语言,10进制数转换为16位二进制数相关推荐

  1. c语言8进制数与16进制数,C语言中的二进制数、八进制数和十六进制数

    C语言中的整数除了可以使用十进制,还可以使用二进制.八进制和十六进制. 二进制数.八进制数和十六进制数的表示 一个数字默认就是十进制的,表示一个十进制数字不需要任何特殊的格式.但是,表示一个二进制.八 ...

  2. 10进制数转换为16位二进制数

    写在前面: 题解是对具体题目的编程实现,不会具体讲解C语言语法.请先大致学习好语法,自己敲敲代码后再看题解(上来就直接看题解的习惯不好哟~).在每一题的题解之前,会列出本题涉及到的语法知识供参考,可以 ...

  3. qt 中文转十六进制_QT中10进制数转换为16进制数的代码怎么写?

    展开全部 //将十六进制"10"转换为e68a8462616964757a686964616f31333365633931十进制i: int i = Convert.ToInt32 ...

  4. 10进制数转16进制

    已知:十进制数123被转换为十六进制数7B.这个转换过程如下:将123除以16,余数为11(十六进制的B)商为7.继续将7除以16,余数为7,商为0.因此7B就是123的十六进制数. //10进制数转 ...

  5. 在c语言中输出8进制数,16进制数

    在初学c语言时,我们会碰到关于8进制,16进制转化的问题,在这里,提供一个简单的方法: 在c语言中,我们是可以直接将10进制数转换为8进制,16进制的. 如下图: 我们的输出结果为: 很轻松的就解决的 ...

  6. 10进制数转换为36进制数

    10进制转换为36进制 如何将一个10进制数转换为36进制数? 主要思路:首先对十进制数取36的余数,第一次取余得到36进制数的个位,把这个数存到数组末尾作为个位:第二次用原来的数减去余数再取余可得到 ...

  7. 将16进制数转换为8进制数输出——算法

    16进制数转换为8进制数 题目描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由09.大写字母AF ...

  8. java10进制数和16进制数字相互转换

    1 将java10进制数字转换为16进制 String hex= Integer.toHexString(numb); 2 将java 16进制字符转换为10进制数 BigInteger bigint ...

  9. 8进制数转换为10进制数

    #include <string.h> int Reverse(char *p,int n) { int sum=0;int len=strlen(p);for(int i=0;i< ...

最新文章

  1. 【OpenCV 4开发详解】Laplacian算子
  2. 使用 MTR 诊断网络问题
  3. Android 再谈handler
  4. 第十三章:位图(五)
  5. SQL SERVER读书笔记:nolock
  6. PAT乙级 1015 德才论
  7. linux内核--设备驱动程序(学习笔记)
  8. 15 个超赞超牛逼的 Linux 工具,提高效率的同时增加乐趣!
  9. Windows NAS迁移工具
  10. 拓端tecdat|R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测
  11. C++小游戏——海战棋
  12. leetcode·动态规划
  13. 潘多拉 搭建 php服务器,OpenWrt/LEDE/潘多拉固件4G网卡上网之【HiLink模式上网教程】...
  14. 计算机用三角函数时如何用弧度制,弧度制 三角函数的简单应用
  15. 小鹿爬虫系列——静态网站页面爬取
  16. 网页中无法直接关注微信公众号怎么办?一键唤起微信关注公众号的解决方案
  17. uniapp如何引入全局js
  18. 计算机启动过程:MBR和BIOS
  19. 七剑下天山,独领自动化测试技术
  20. 《MySQL DBA修炼之道》——3.3 SQL基础

热门文章

  1. WuThreat身份安全云-TVD每日漏洞情报-2023-01-31
  2. MySQL UDF 提权
  3. 【C#】CurrentCulture和CurrentUICulture的区别及winform多语言版本设置
  4. 公网远程访问内网群晖NAS 6.X【内网穿透】
  5. 大数据Spark实战第七集 机器学习和数据处理
  6. maven到底是什么
  7. 钉钉OA流程审批,Jenkins自动授权通知用户密码
  8. 高效Redis工具类
  9. tensorflow学习笔记(二十六):构建TF代码
  10. 三维偏序/cdq分治/