c语言把二进制数转换成十进制数的程序怎么写。

c语言把二进制数转换成十进制数的程序怎么写。,第1张

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始cpp文件,例如:testcpp。

2、在testcpp文件中,输入C语言代码:int a = 0b10000001;printf("%d", a);。

3、编译器运行testcpp文件,此时输入的8位二进制数被成功用十进制进行了输出。

#define MAXSIZE 100

#include<stdlibh>

#include<stdioh>

struct stack

{ int data[MAXSIZE];

int top;

};

void init(struct stack s)

{ s->top=-1;}

int empty(struct stack s)

{ if(s->top==-1) return 1;

else return 0;

}

void push(struct stack s,int i)

{ if(s->top==MAXSIZE-1)

{ printf("Stack is full\n");

return;

}

s->top++;

s->data[s->top]=i;

}

int pop(struct stack s)

{ if(empty(s))

{ printf("stack is empty");

return -1;

}

return(s->data[s->top--]);

}

void trans(int num,int jz)

{ struct stack s;

int k;

init(&s);

while(num)

{ k=num%jz;

push(&s,k);

num=num/jz;

}

while(!empty(&s))

{ k=pop(&s);

if(k<10) printf("%d",k);

else printf("%c",k+55);

}

printf("\n");

}

void main()

{ int num,jz;

// clrscr();

printf("此程序的功能是将十进制数X转化为Y进制输出\n");

printf("请输入X和Y的值:(-1结束 *** 作)");

scanf("%d%d",&num,&jz);

while(num!=-1)

{ trans(num,jz);

printf("请输入X和Y的值:");

scanf("%d",&num);

if(num==-1) return;

scanf("%d",&jz);

}

}

#include<stdioh>

voidmain()

{

//进制转换函数的声明

inttransfer(intx);

intx;

printf("请输入一个十进制数:");

scanf("%d",&x);

printf("转换成二进制数是:%d\n",transfer(x));

}

inttransfer(intx)

{

intp=1,y=0,yushu;

while(1)

{

yushu=x%2;

x/=2;

y+=yushup;

p=10;

if(x<2)

{

y+=xp;

break;

}

}

returny;

}

扩展资料

C语言:整数转换十六进制数和八进制

#include<stdioh>

voidmain()

{

inti;

printf("请输入一个十进制数:");

scanf("%d",&i);

printf("这个数转换为十六进制数:%x\n\n",i);

printf("这个数转换为八进制数:%o\n",i);

getch();

return0;

}

这样看,一个十进制数,比如123,我们如果要把它转成十进制,那行就是这样算

用这个数除以100,然后得1也就是第一位数,然后用这个数减去1100,再拿得到的那个数23除以10,然后得2,23-210=3,再用3/1,就出来了

如果要转成别的进制,只用除以相应该的数就可以了

如转成二进制就除以2^n,2^n-12^0,也就是1,2,4,8,16

十六进制这样1,16,256

程序如下

#include

"stdioh"

#include

"mathh"

void

main()

{

int

n;

int

i,k;

int

tmp,m;

printf("请输入一个十进制的数:\n");

scanf("%d",&n);

printf("2

");

for(i=30,k=n;i>=0;i--)

{

tmp=int(pow(2,i));

m=k/tmp;

printf("%d",m);

k=k-mtmp;

}

printf("\n4

");

for(i=15,k=n;i>=0;i--)

{

tmp=int(pow(4,i));

m=k/tmp;

printf("%d",m);

k=k-mtmp;

}

printf("\n8

");

for(i=10,k=n;i>=0;i--)

{

tmp=int(pow(8,i));

m=k/tmp;

printf("%d",m);

k=k-mtmp;

}

printf("\n16

");

for(i=7,k=n;i>=0;i--)

{

tmp=int(pow(16,i));

m=k/tmp;

if(m<10)

printf("%d",m);

else

putchar(m+'A'-10);

k=k-mtmp;

}

printf("\n32

");

for(i=6,k=n;i>=0;i--)

{

tmp=int(pow(32,i));

m=k/tmp;

if(m<10)

printf("%d",m);

else

putchar(m+'A'-10);

k=k-mtmp;

}

putchar('\n');

}

C语言中实现10进制转换为任意进制的过程为:

定义数组int rs[32],保存转换后的数据,整数的转换结果最多32位(4字节8位)

定义一个数组char map[]={'0','1','2','3',,'9','A','B','F'},完成相应数值对应的转换后的字符

输入10进制数(整数)num

转入转换进制基数(2-16)ind

循环对num进行模ind运算,得到余数存储到数组rs中

num缩小ind倍

当num为0时结束循环

反向输出数组rs中对应的各元素对应的map字符,得到转换结果

参考代码:

#include <stdioh>

int main()

{

    char map[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

    int i,c[32],num,ind;

    do {printf("input num: ");scanf("%d", &num );}while(num<0 );

    do {printf("input ind: ");scanf("%d", &ind );} while( ind>16||ind<2);

    i=0;

    do {

        c[i++]=num%ind;

        num/=ind;

    } while(num!=0) ;

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

        printf("%c",map[c[i]] );

    printf("\n");

    return 0;

}

运行结果:

input num: 100

input ind: 2

1100100

input num: 100

input ind: 8

144

input num: 100

input ind: 16

64

常用的进制二进制、八进制、十进制与十六进制,它们之间区别在于数运算时是逢几进一位。比如二进制是逢2进一位,十进制也就是常用的0-9是逢10进一位。具体 *** 作如下:

1、点击左下角---计算机。

2、点击计算器之后d出一个计算器的标准模板。

3、然后点击左上角的一个菜单选项,d出程序员的字样。

4、点击就可以进入到进制转换的地方了。

5、这里随便输入一个数字就可以看到相应的进制位数显示了。

6、除此之外计算器还可以实现多种功能。

注意事项

1、0、1这两种状态,代表开关状态,高低电平的转换,逻辑电路与非门、真或假等等。

2、量子计算机中,量子纠缠对的状态,一个为0,则另一个是1,也是二进制。

以上就是关于c语言把二进制数转换成十进制数的程序怎么写。全部的内容,包括:c语言把二进制数转换成十进制数的程序怎么写。、十进制数N转换成d进制数的程序、请问用C语言编写一个十进制转换成二进制或八进制或十六进制的程序需要怎么打等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10177688.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存