1.题目
二 进 制 数
给出一个正整数 n,打印出它的二进制中所有 1 的位置。二进制中最低位的位置是 0.
举例
正整数 13 的二进制(1101)中 1 的位置是 0,2,3。
任务
编写一个程序来处理每个数据:
先读入一个正整数 n,再计算这个正整数的二进制中 1 的位置,打印结果。
2.输入描述
输入数据的第一行是一个正整数 d,表示这个数据集中正整数的个数,1≤d ≤10。数据集列在 d 的下面。每个数据集由一个整数 n(1≤n≤1000000)组成,且放在一行上。
3.输出描述
输出应当有 d 行,一行是一个数据集处理的结果。
第 i 行,1≤i≤d,应当包含该数据的二进制的 1 的位置,位置是按递增顺序排列,中间用一个空格隔开。
4.输入样例
1
13
5.输出样例
0 2 3
#include<iostream>
#include<vector>
using namespace std;
vector<int> convert(int n)
{
vector<int> myvector;
while( n != 0)
{
myvector.push_back(n%2);
n = n/2;
}
return myvector;
}
int main()
{
int t;
cin>>t;
for(int k = 0;k<t;k++)
{
int n;
int i;
int a;
cin>>n;
vector<int> myvector;
myvector = convert(n);
//输出第一个
for(i = 0;i<myvector.size(); i++)
{
if(myvector[i] == 1)
{
a = i;
cout<<i;
break;
}
}
//输出剩余的
for(i = a+1;i<myvector.size();i++)
{
if(myvector[i] ==1 )
{
cout<<" "<<i;
}
}
cout<<endl;
}
return 0;
}
分享到:
相关推荐
本文将深入解析如何利用8086汇编语言实现ASCII码十进制数到二进制数的转换,并通过一个具体的示例程序进行详细解读。 ### 关键知识点 #### 1. ASCII码与数值表示 ASCII码是一种基于拉丁字母的一套电脑编码系统,...
二进制数与十六进制数是两种不同的数值表示方式,它们在计算机科学中有着广泛的应用。二进制数(Binary Number)基于2的幂次展开,只包含0和1两个数字;而十六进制数(Hexadecimal Number)是基于16的幂次展开,使用...
本课程设计的重点是探讨如何在汇编语言中实现二进制数与十进制数之间的转换。 首先,我们要理解二进制数系统,它是计算机内部运算的基础。二进制数由0和1组成,每一位代表2的幂次。例如,二进制数1011表示1*2^3 + 0...
数值转换(从键盘读入二个五位十进制数,并将这二个十进制数分别转换为二进制数,然后求其和,再将和以十进制形式进行显示) 从键盘读入二个五位十进制数(1位符号位+4位数值位),并将这二个十进制数分别转换为二...
3. **二进制到八进制/十六进制**: 首先将二进制数按每三位(八进制)或四位(十六进制)一组划分,然后将各组转换成对应的八进制或十六进制数字。例如,二进制数11010110转换为八进制是 \(110_2 = 6_8\),\(101_2 = ...
在编程领域,将十进制整数转换为二进制数是一项常见的任务,尤其是在低级系统编程或理解计算机内部工作原理时。在C语言中,我们可以利用一系列基本操作来实现这个转换过程。以下是一个详细的知识点说明: 1. **基础...
### 十六位二进制数转换为十六进制数并输出 在计算机科学与技术领域,数制转换是一项基础而重要的技能。本篇将基于提供的汇编代码示例,详细解析如何将一个十六位的二进制数转换成十六进制数,并将其输出到屏幕上。...
通过以上分析,我们可以清晰地理解该程序是如何实现从键盘输入四位十六进制数,并将其转换为对应的二进制数并显示出来的。此程序不仅包含了基本的输入输出功能,还涉及到了数据验证、转换算法等关键步骤,对于学习...
标题与描述均提到了在汇编语言中,如何将DX寄存器中的二进制数(3F2EH)以十六进制的形式显示在屏幕上,并随后进行换行操作,以及统计该二进制数中“1”的个数,将结果保存在BL寄存器,并同样显示在屏幕上。...
在计算机科学领域,二进制数是数字系统的基础,它由0和1组成,用于表示所有数字和数据。本文将深入探讨如何列举N位二进制数,这涉及到算法分析与设计,特别是递归和分治策略的应用。我们将首先理解二进制数的基本...
* 八进制转换为十六进制:先将八进制数转换为二进制数,再将二进制数转换为十六进制数。 * 十六进制转换为八进制:先将十六进制数转换为二进制数,再将二进制数转换为八进制数。 五、总结复习 进制数之间的转换是...
将十进制数转化为7位二进制数的matlab M文件
用c语言写的小程序,功能是将十进制数转换为二进制数。
将十进制数转换为二进制数(有符号)Matlab
本实验涉及的核心知识点是将ASCII码表示的十进制数转换为二进制数。首先,我们需要理解ASCII码和十进制数,以及如何用二进制来表示它们。 ASCII(American Standard Code for Information Interchange,美国信息...
简单的输出十进制数输出其对应二进制数的位数,很简单 很实用
二进制数相乘是计算机科学中的一个基本操作,特别是在低级别的编程和算法设计中。在传统的十进制计算中,我们使用竖式乘法,但在二进制系统中,这个过程有所不同。分治法是一种高效解决问题的策略,它将大问题分解为...
**二进制数转换为BCD码** 在计算机科学中,二进制数(Binary)是数字信息的基础表示形式,而BCD码(Binary-Coded Decimal)是一种将十进制数编码为二进制的形式,它在处理数字显示、财务计算等领域广泛应用。微机...
在微机课程设计中,"十进制数转换为二进制数求和"是一个常见的实践项目,旨在帮助学生深入理解数字系统以及不同进制之间的转换。在这个项目中,主要涉及了以下几个重要的知识点: 1. **进制系统**:十进制是我们...
十进制数转二进制数、八进制数、十六进制数的方法是相同的,即整数部分用除基取余的算法,小数部分用乘基取整的方法,然后将整数与小数部分拼接成一个数作为转换的最后结果。 例如,要将 16 转换成二进制数,可以...