sdibt 2548 将十进制数转换成二进制数

原创 2012年03月21日 16:23:49
键盘输入一个十进制正整数,求出其二进制值, 本题不允许使用数组,也不允许使用递归
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[])
{
	int n;
	while(scanf("%d",&n)!=EOF)
	{
		int t=n,i;
		int cas1=0,cas2=0;
		while(t)//计算最大的2的几次方  
		{
			t/=2;
			cas1++;
		}
		cas1-=1;
		n-=pow(2,cas1);//剩余的数是多大 
		printf("1");//先把开头的1打出来 
		if(n==0)//当数刚好是2的次方直接打出剩下的0 
		{
			for (i=1;i<=cas1;i++)
			  printf("0");
			printf("\n");  
			continue;
		}
		while(n)
		{
			cas2=0;
			t=n;
			while(t)//计算接下来的数最大2的次方是多少 
			{
				t/=2;
				cas2++;
			}
			for (i=cas1;i>cas2;i--)
			   printf("0");//1和1之间有几个0 
		    cas1=cas2-1;
			printf("1");
			n-=pow(2,cas2-1);  
		}
		for (i=1;i<cas2;i++)
		  printf("0");
		printf("\n");
	}
	return 0;
}
 
 
 
/*试数法
**比如说100,最大是2^6输出1,其次2^5,这里也是输出一,再后来 
**就是2^2而对于2^4,3这里都要输出0,因为2^6+2^5=96+2^4>n(100) 
**
*/ 

#include<stdio.h>
int main()
{
	int n,m=1,sum,i;
	scanf("%d",&n);
	for(i=0;m<n/2+1;i++)
		m=m*2;
	sum=m;
	printf("1");
	for(;i>0;i--)
	{
		m=m/2;
		sum=sum+m;
		if(sum<=n)	
			printf("1");
		else
		{
			printf("0");
			sum=sum-m;
		}
	}
	printf("\n");
	return 0;
}
 

【c语言】多种方法:将十进制数转化成二进制数,计算其中1的个数

以下是我学到的三种方法,如果大家还有更好的方法,可以讨论交流。 首先,我们得知道十进制怎样转化成二进制,如下图。 得到10的二进制数为1010 那么我们会发现,10%2是判断二进制数的最后一位是0还...
  • qinghe0808
  • qinghe0808
  • 2016年10月11日 14:02
  • 3428

Java中输入一个十进制数,如何转换为二进制数

方法一:利用Java API直接转换十进制数如何转换为二进制数,这在Java API 中有一个方法,Integer.toBinaryString( ) 括号里面写上你要转换的十进制数,这样可以直接转换...
  • qq_24696917
  • qq_24696917
  • 2016年07月14日 20:42
  • 20828

用C#代码实现二进制与十进制的互相转换

代码如下:   1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
  • QingHeShiJiYuan
  • QingHeShiJiYuan
  • 2016年10月07日 19:23
  • 2408

《第二周实验报告1-1》---递归函数将十进制数转换成二进制

/*(1‐1)编写递归函数将十进制数转换成二进制数输出。 * 算法说明:十进制数转换成二进制数输出 * 我们首先要知道具体的算法,知道了具体的算法我们才可能用代码实现; * 1.将n进行整除运...
  • w695050167
  • w695050167
  • 2012年02月27日 21:30
  • 1461

将十进制数转换成二进制数输出

/*用数组十进制数转换成二进制数输出 */ #include using namespace std; int main() { int a[50],n,i,j; co...
  • xgcfxl2011
  • xgcfxl2011
  • 2012年02月27日 20:14
  • 615

将十进制数转换成二进制数

先以数字23为例 具体程序为 Private Sub Command1_Click() Me.Font.Size = 60 Dim n As Byte n = 23 Const e...
  • ahayummy
  • ahayummy
  • 2016年04月28日 16:44
  • 197

【汇编】将ASCII码表示的十进制数转换成二进制数

程序要求 流程图 汇编代码 STACK1 SEGMENT STACK DW 256 DUP(?) STACK1 ENDS DATA SE...
  • lwhlwh2012
  • lwhlwh2012
  • 2016年06月15日 17:07
  • 2131

第二周上机任务1-1--编写递归函数将十进制数转换成二进制数输出(改进版)

实验目的:编写递归函数将十进制数转换成二进制数输出 实验内容: * 程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * C...
  • leihengxin
  • leihengxin
  • 2012年02月27日 19:12
  • 2018

第一周第二天([变量名] [运算符] [语句] [求水仙花数的算法][求一个十进制数转换成二进制数有多少个1的算法] [continue的用法])

目录变量名 运算符 变量名运算符 “` java public class yusuanfu { public static void main(String[] ...
  • tuanzi11
  • tuanzi11
  • 2015年07月15日 15:29
  • 382

第二周上机任务1-2--编写循环函数将十进制数转换成二进制数输出

实验目的:编写循环函数将十进制数转换成二进制数输出 实验内容: * 程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * C...
  • leihengxin
  • leihengxin
  • 2012年02月27日 20:10
  • 1029
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sdibt 2548 将十进制数转换成二进制数
举报原因:
原因补充:

(最多只允许输入30个字)