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

article/2025/9/21 6:57:52

写在前面:

题解是对具体题目的编程实现,不会具体讲解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 
  1. 144↵
 
  1. 0000000010010000↵
1秒64M0

题解

本题给出两种解法:

方法一

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

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

#include <stdio.h>   //导入stdio.h库,里面包含输入输出函数int main() {int num;scanf("%d", &num); //以十进制的形式输入一个整数,存在num内int a[16] = {0};  //定义一个长度为16的数组a,并全都初始化为0int 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>   //导入stdio.h库,里面包含输入输出函数
#include <stdlib.h> //导入stdlib.h库,里面包含itoa函数
#include <string.h> //导入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,做最扎实的程序员 ----

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

在这里插入图片描述

 


http://chatgpt.dhexx.cn/article/TuSDO284.shtml

相关文章

vue 实现12个月的平铺式日历插件

实现的基本样式如下&#xff1a; 使用方法 1、安装插件 npm install vue-material-year-calendar --save2、导入插件 import YearCalendar from vue-material-year-calendar3、代码实现 <template><YearCalendarv-model"year":activeDates.sync"…

【LeetCode刷题】二月汇总篇

学习总结 文章目录 学习总结一、时间安排task01 数组task02 链表task03 栈task04 字符串task05 树task06 位运算task07 双指针task08 搜索task09 排序task10 动态规划task11 分治task12 哈希表 一、时间安排 阿里云天池leetcode训练营&#xff08;二月&#xff09;。 task01 数…

2019年9月全国计算机二级准考证打印,2019年9月计算机二级准考证打印入口公布...

2019年下半年全国计算机考试已经进入紧张备考中&#xff0c;在9月21日正式开考&#xff0c;请考生提前打印准考证&#xff0c;目前各市的准考证打印网址开通&#xff0c;考生可以自行打印。如果是在报名点报名的考生&#xff0c;可在报名点领取&#xff0c;下面我们来看各省打印…

MODIS16天数据月合成/季合成

1.MRT重投影、转换格式 重投影后命名为MOD13Q1.A2019129.250m_16_days_NDVI.tif 2.重命名 5月单独一期&#xff0c;即序号为129的一期。&#xff08;欢迎探讨&#xff09; 首先去掉前面的MOD13Q1. 再将001.250替换为0101 将129.250替换为0501 得到A20200501_16_days_NDVI.ti…

plc里的二进制 用计算机,如何理解二进制和十六进制(电工入门PLC知识普及)...

如何理解二进制和十六进制(电工入门PLC知识普及)三菱PLC直观易懂&#xff0c;便于入门&#xff01;&#xff01;而欧系的西门子PLC太复杂&#xff0c;不适合入门&#xff01;&#xff01;这句话已经成了很多人的口头语&#xff0c;但是&#xff0c;到底是为什么呢&#xff1f;&…

计算机二级报名时间2020年3月山西,2020年3月山西计算机二级报名及考试时间

摘要&#xff1a; 2020年3月山西计算机二级报名及考试时间为你介绍根据山西省2020年上半年全国计算机等级考试网上报名公告可知。山西2020年3月计算机二级报名及考试时间已经公布&#xff0c;以下是小编为大家整理的相关内容希望对大家有所帮助。 山西计算机二级报名及考试时间…

7月14日第壹简报,星期四,农历六月十六

7月14日第壹简报&#xff0c;星期四&#xff0c;农历六月十六1. 天链二号03星成功发射&#xff0c;中国第二代数据中继卫星系统正式建成。2. 微博、微信&#xff1a;将整治用谐音字、变体字等“错别字”发布、传播传播不良信息。3. 官方&#xff1a;严禁在就业上歧视曾经新冠核…

百度杯”CTF比赛(十二月场)

"百度杯"CTF比赛&#xff08;十二月场&#xff09; 第一场 1、传说中的签到题 解决&#xff1a;把二进制用在线进制转换器转换&#xff0c;发现转为10进制时&#xff0c;和tips2一样&#xff0c;在qq上一查&#xff0c;是CTF官方群&#xff0c;在公告里有一个字符串…

5月16日第壹简报,星期一,农历四月十六

5月16日第壹简报&#xff0c;星期一&#xff0c;农历四月十六1、重磅&#xff01;个人首套房商贷利率下限调整&#xff0c;可低至4.4%&#xff0c;30年贷款50万利息可省2万。2、IMF完成特别提款权&#xff08;SDR&#xff09;定值审查&#xff0c;人民币权重上调至12.28%。3、9…

2020年三月计算机二级甘肃报名官网,2020年3月甘肃计算机二级考试报名时间

在大学期间&#xff0c;我们都会参加计算机二级考试。那么计算机二级考试什么时候报名呢&#xff1f;下面是小编整理的2020年3月甘肃计算机二级考试报名时间&#xff0c;希望对大家有所帮助&#xff01; 2020年3月甘肃计算机二级考试报名时间 2020年3月甘肃计算机二级考试报名时…

【历史上的今天】2 月 16 日:世界上第一个 BBS 诞生;中国计算机教育开端;IBM 机器人赢得智能竞赛

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 2 月 16 日&#xff0c;在 1914 年的今天&#xff0c;世界第一条空中航线——美国洛杉矶到旧金山航线开通。洛杉矶位于美国西岸加州南部的城市&#xff0c;是美…

SQLServer 查询表的列名称、说明、备注、类型等

分享一个sqlserver 查询表的列名称、说明、备注、类型等内容的语句&#xff1a; SELECT 表名 CASEWHEN a.colorder 1 THENd.nameELSEEND,表说明 CASEWHEN a.colorder 1 THENISNULL(f.value, )ELSEEND,字段序号 a.colorder,字段名 a.name,标识 CASEWHEN COLUMNPROPERTY(…

Scrapy抓取接口中文数据显示问号问题

scrapy.FormRequest抓取接口数据中文显示问号 问题表象原因分析处理办法 问题表象 近期在抓取数据的时候&#xff0c;数据是用Js通过接口加载的&#xff0c;需要POST form-data数据过去抓取。 yield scrapy.FormRequest(urlurl, methodPOST,headersself.headers, formdatasel…

centos 安装java11

直接执行 yum list|grep java-11输出结果如下 java-11-openjdk.i686 1:11.0.16.0.8-1.el7_9 updates java-11-openjdk.x86_64 1:11.0.16.0.8-1.el7_9 updates java-11-openjdk-demo.i686 1:11.0.1…

Java-1.11

题目描述&#xff1a; 编写程序&#xff0c;显示未来五年每年的人口数。假设当前的人口数是312032486人&#xff0c;每年365天。每7秒有1人出生&#xff0c;每13秒有1人死亡&#xff0c;每45秒有人迁入。 代码&#xff1a; public class Population {public static void main…

Java11新特性(一)——JDK11新特性概述

序言 关于JDK11&#xff0c;自从去年也就是2018年9月份 Oracle 对外公布——JDK11正式发布以来&#xff0c;博主就跃跃欲试&#xff0c;但是由于项目周期时间紧&#xff0c;一直未果&#xff0c;今年&#xff0c;也就是2019年2月底系统正式上线&#xff0c;博主除了远程技术支持…

1-10java

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1-7天前言一.配置环境二.基本语法三.作业小结 1-7天 前言 为了复习java基础知识 一.配置环境 一般用java8二.基本语法 .2.1 加、减、乘、除、整除、取余.2.2 熟悉…

当老板让我从 Java8 升到 Java11

老板让我把一个项目从 Java 8 迁移到 Java 11&#xff0c;我该怎么办呢&#xff1f; 最简单的办法&#xff0c;当然是直接强行升级&#xff0c;遇到一个错就改一个错&#xff0c;别看它 low&#xff0c;但是对于一个小型且非核心的项目来说&#xff0c;已经足够了。 当然&…

java11初体验,8 个逆天新特性教你写出更牛逼的代码!

美国时间 09 月 25 日&#xff0c;Oralce 正式发布了 Java 11&#xff0c;这是据 Java 8 以后支持的首个长期版本。 为什么说是长期版本&#xff0c;看下面的官方发布的支持路线图表。 可以看出 Java 8 扩展支持到 2025 年&#xff0c;而 Java 11 扩展支持到 2026 年。 现在大…

一、Java11安装

一、安装 Java11 window64版本傻瓜式安装即可 二、环境变量 1. JAVA_HOME 变量名&#xff1a;JAVA_HOME 变量值&#xff1a;电脑上JDK安装的绝对路径 &#xff1a; C:\Program Files\Java\jdk-11.0.122. 新建/修改 CLASSPATH 变量 变量名&#xff1a;CLASSPATH 变量值&…