您现在的位置是:首页 >

c语言用递归求1到n的和 C语言,怎么用递归函数,把输入的一个十进制整数转换成二进制数输出

火烧 2022-07-21 05:59:31 1052
C语言,怎么用递归函数,把输入的一个十进制整数转换成二进制数输出 C语言,怎么用递归函数,把输入的一个十进制整数转换成二进制数输出评论 ┆ 举报最佳答案此答案由提问者自己选择,并不代表百度知道知识人的

C语言,怎么用递归函数,把输入的一个十进制整数转换成二进制数输出  

C语言,怎么用递归函数,把输入的一个十进制整数转换成二进制数输出

评论 ┆ 举报
最佳答案此答案由提问者自己选择,并不代表百度知道知识人的观点
回答:w8g8h
学弟
12月21日 09:33 程序的主要思想是:
按位与的特点是,是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1,否则为0。
也就是说,按位与运算有3个对象,分别是两个参与运算的两个数和运算有的结果。这个和小学学习的普通加法一样。如:a+b=c,,a,b,c分别是3个对象。同样的,与运算也是一一样的意思:a & b = c.
只不过是与的意思和加法的意思不一样而已。
根据题目要求,我们已经得到了一个参与运算的数据,就是要转换的数,现在我们需要得到转换后的数,根据与运算规则,我们构造一个数,分别和待转换的数进行与运算,得到每一位的值,要么是0,要么是1。
程序如下:
#include <stdio.h>
int main(void)
{
const int iTimes=sizeof(int) * 8;
int iMask=1;
int x = 12345; 这个就是要转换的数
int x2[iTimes];
int i;
for( i=0 ; i<iTimes ; i++ ){
x2[i]=x & iMask;
iMask = iMask << 1;
printf("%d",iMask);
}
printf("n(%d)d=",x);
for( i=iTimes -1 ; i >=0 ; i-- ){
printf("%d",x2[i] ? 1 : 0 );
}
return 0;
}
揪错 ┆ 评论 ┆ 举报

c语音程序 利用数组,将输入的任一十进制数转换成二进制数。

#include <stdio.h>
void main(){int n,a[20],i=0;
scanf("%d",&n);
while(n)
{a[i] = n%2;
n /= 2;
i++;
}
printf("n");
for(int j = i - 1;j>=0;j--)
printf("%d",a[i]);
}

编写函数,将任意输入的二进制数转换为十进制数

不知道你的二进制数是怎么存的??
假设是存在int array[]数组中吧,或者char array[]数组也所谓
int i;
int result = 0;
for( i= 0; i < 数组的长度; i++)
{
result = result * 2 + array[i];
}
上面默认数组的高位从array[0]开始,若低位从array[0]开始:for( i= 数组的长度 - 1; i >= 0; i)
如果是char数组处理类似的

PASCAL十进制正整数转换成八进制数,用递归

program pyy;
var
a:integer;
procedure to8(n:integer);
begin
if n>=1
then to8(n div 8)
else exit;
write(n mod 8);
end;
begin
readln(a);
to8(a);
readln;
end.

将一个十进制数转换成二进制数,然后用二进制输出拜托各位了 3Q

用位运算 int numb;要输入的数 int i=0x80;2进制是10000000 for(;i!=0;i>>=1) if(i&n)printf("1"); else printf("0"); 自己研究一下,没明白的话补充问题我给你详解

java中,用递归的方式实现十进制数转换成二进制数。

你没给函数接口,我就用long型做的返回值,不过差不多,加一句toString就可以转成String

c语言用递归求1到n的和 C语言,怎么用递归函数,把输入的一个十进制整数转换成二进制数输出
class DecimalToBinary{ public long convert(long decimal){ if(decimal >= 2){ return this.convert(decimal/2)*10+decimal%2; }else{ return decimal; } }}public class ConvertDemo{ public static void main(String[] args){ DecimalToBinary toBinary = new DecimalToBinary(); System.out.println("1024d convert to binary is:t"+toBinary.convert(1024)+"b"); }}

编写函数fun(),将十进制正整数转换成k进制数,并按位输出

/
C-Free 4.1
MinGW 3.4.5
veket的小号
/
#include <stdio.h>
void DecToK(char *dec, char *kser, int k);
void reverse(char *s);
int main()
{
char a[1024] = "1234";十进制数字的字符串
char b[1024];存放k进制数字的字符数组
DecToK(a, b, 3);转三进制
reverse(b);
printf("%s = %sn", a, b);
DecToK(a, b, 24);转二十四进制
reverse(b);
printf("%s = %sn", a, b);

return 0;
}
void DecToK(char *dec, char *kstr, int k)
{
char str[36] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int digit;
char *p = dec;
digit = 0;
while(*p)
{
digit = digit*10 + (*p-'0');
p++;
}
p = kstr;
while(digit)
{
*p = str[digit%k];
digit /= k;
p++;
}
*p = '';
}
void reverse(char *s)字符串逆序
{
char *p1 = s;
char *p2 = s;
char temp;
while(*p2)
{
p2++;
}
p2--;
while(p1<p2)
{
temp = *p1;
*p1 = *p2;
*p2 = temp;
p1++;
p2--;
}
}

十进制数转换成二进制数的c语言程序,采用递归与数组的,要怎么做?(详细的)

#include<stdio.h>
void Switch(int num)
{
int i=0,s;
int y[16]={0};
s=num/2;
y[i]=num%2;
i++;
if(s==1)
{
y[i]=1;
for(i=15;i>=0;i--)
{
printf("%d",y[i]);
if(i%4==0)
printf(" ");
}
}
if(s==0)
{
y[i]=0;
for(i=15;i>=0;i--)
{
printf("%d",y[i]);
if(i%4==0)
printf(" ");
}
}
else
{
num=s;
Switch(num);
}
}
void main()
{
int n;
printf("pleass input a numble:n");
scanf("%d",&n);
printf("result is :n");
Switch(n);
}

二进制数1100110转换成十进制整数等于

(1100110)2
=(((((((0*2+1)*2+1)*2+0)*2+0)*2+1)*2+1)*2+0)10
=((((((1*2+1)*2+0)*2+0)*2+1)*2+1)*2+0)10
=(((((3*2+0)*2+0)*2+1)*2+1)*2+0)10
=((((6*2+0)*2+1)*2+1)*2+0)10
=(((12*2+1)*2+1)*2+0)10
=((25*2+1)*2+0)10
=(51*2+0)10
=(102)10

用pascal编程“将正十进制整数转换成二进制"

var n:longint;
s:string;
begin
readln(n);
s:='';
repeat
if n mod 2=0 then s:=s+'0' else s:=s+'1';
n:=n div 2;
until n=0;
writeln(s);
end.

  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码