您现在的位置是:首页 >

C语言简单程序 求高手写C语言程序代码:"从键盘输入一个十进制数,将其转换为二进制、八进制和十六进制数。"

火烧 2022-09-21 11:08:25 1122
求高手写C语言程序代码:"从键盘输入一个十进制数,将其转换为二进制、八进制和十六进制数。" 求高手写C语言程序代码:"从键盘输入一个十进制数,将其转换为二进制、八进制和十六进制数。"#i clude

求高手写C语言程序代码:"从键盘输入一个十进制数,将其转换为二进制、八进制和十六进制数。"  

求高手写C语言程序代码:"从键盘输入一个十进制数,将其转换为二进制、八进制和十六进制数。"

#include<stdio.h>
转换为2进制
void showbit(int n)
{
if(n>1){
showbit(n/2);
printf(" ");
}
printf("%d",n%2);
}
转换为8进制
void showoct(int n)
{
if(n>7){
showoct(n/8);
printf(" ");
}
printf("%d",n%8);
}
转换为16进制
void showhex1(int n)
{
switch(n)
{
case 10: putchar('A'); break;
case 11: putchar('B'); break;
case 12: putchar('C'); break;
case 13: putchar('D'); break;
case 14: putchar('E'); break;
case 15: putchar('F'); break;
default: printf("%d",n);
}
}
void showhex(int n)
{
if(n>15){
showhex(n/16);
showhex1(n%16);
}
else
showhex1(n%16);
}
main()
{
int a;
printf("input a num:");
scanf("%d",&a);
printf("二进制: ");
showbit(a);
printf("n");
printf("八进制: ");
showoct(a);
printf("n");
printf("十六进制: ");
showhex(a);
printf("n");
}

c语言从键盘输入一个十进制数,将其转换为二进制、八进制和十六进制数。

#include"stdio.h"
main()
{
int i;
printf("enter a number");
scanf("%d",&i);
printf("n八进制为%o",i);
printf("n十六进制为%x",i);
}

C 语言 从键盘输入一个十进制数,将其转换为二进制、八进制和十六进制数。

十进制数转二进制、八进制、十六进制的经典程序
程序源代码:
Copy code#include <iostream.h>
十进制数转换成二进制数字
void fun_1(int n)
{
if(n<2)
cout<<n;
if(n>=2)
{
fun_1(n/2);
cout<<n%2;
}
}
十进制数字转换成八进制数字
Copy codevoid fun_2(int n)
{
if(n<8)
cout<<n;
if(n>=8)
{
fun_2(n/8);
cout<<n%8;
}
}
十进制数转换成十六进制数字
Copy codevoid fun_3(int n)
{
switch(n)
{
case 10: cout<<"A"; break;
case 11: cout<<"B"; break;
case 12: cout<<"C"; break;
case 13: cout<<"D"; break;
case 14: cout<<"E"; break;
case 15: cout<<"F"; break;
default: cout<<n;
}
}
void fun_4(int n)
{
if(n<16)
fun_3(n);
if(n>=16)
{
fun_4(n/16);
fun_3(n%16);
}
}

将十进制数49.25分别转换为二进制,八进制和十六进制数

像这种可以有规律按2的N次方进行整数化的数,可直接乘以相应的2的N次方进行整数化,化为二进制后再移动相应的位数。
小数部分0.25,即1/4,乘以2(2^2)是最好的整数化方法。
(49.25)10*(2^2)10
=(49.25)10*(4)10
=(197)10
=(C5)16
=(1100 0101)2
因为最初乘了2,即2的2次方,所以换算成二进制时应右移两位,
即最终结果等于(110001.01)2。
PS:为什么要换算成十六进制?一个十六进制数就等于四个二进制位,一次性就计算了四个二进制位的结果,这当然是相对比较有效率的做法。
一个八进制数就等于三个二制位,
所以(110001.01)2可按每三位进行一次分割,缺位补零
即:(110 001.010)2=(61.2)8
一个十六进制数就等于四个二制位,
所以(110001.01)2可按每四位进行一次分割,缺位补零
即:(0011 0001.0100)2=(31.4)16

将十进制数87.125分别转换为二进制,八进制和十六进制数

(87.125)10==(1010111.001)2=(127.1)8=(57.2)16
人类算数采用十进制,可能跟人类有十根手指有关。亚里士多德称人类普遍使用十进制,只不过是绝大多数人生来就有10根手指这样一个解剖学事实的结果。实际上,在古代世界独立开发的有文字的记数体系中,除了巴比伦文明的楔形数字为60进制,玛雅数字为20进制外,几乎全部为十进制。只不过,这些十进制记数体系并不是按位的。

将十进制数78.125分别转换为二进制数、八进制数和十六进制数

78.125
=1001110.001B
=116.1Q
=4E.2H

将十进制数(125)10转换为二进制和十六进制数

整数和小数部分要分开算。
整数部分转成2进制是采用连续除以2,取余数,再倒序的方法。
213/2=106余1
106/2=53余0
53/2=26余1
26/2=13余0
13/2=6余1
6/2=3余0
3/2=1余1
1/2=0余1
所以213转成2进制是11010101。
小数部分转成2进制是连续乘2,超过1则减1,将差继续乘2。
0.125*2=0.25,不到1,记0
0.25*2=0.5,不到1,记0
0.5*2=1,到1,记1,再减1得到0,结束。
所以213.125转成二进制是11010101.001。
二进制转八进制是从小数点向两边延伸,三位一转,所以是325.1
二进制转16进制是从小数点向两边延伸,四位一转,所以是D5.2
希望对你能有所帮助。

求用C语言编写代码,输入二进制数,输出十进制数,八进制数,十六进制数

#include "stdafx.h"vc++6.0加上这一行.
#include "stdio.h"
void main(void){
char binary[33],i=0,x;
int n=0;
printf("Type a binary(<33 bit)...n");
while((x=getchar())=='0' || x=='1'){
binary[i++]=x;
if(i==33) break;
}
binary[i]='';
for(i=0;binary[i];(n*=2)+=binary[i++]-'0');
printf("To Dec is %d.nTo Oct is %o.nTo hex is %X.n",n,n,n);
}

把十进制数737分别转换为二进制数,八进制数,十六进制数?

二进制:1011100001
八进制:1341
十六进制:2E1

C语言简单程序 求高手写C语言程序代码:

其实用Windows自带的计算器很方便就可转换的。

将十进制数548.67分别转换为二进制数、八进制数、十六进制数和五进制数。

二进制:10 0010 0100。1010 1011 1000 0101。。。(2)
十六进制:224。AB85。。。(16)
八进制:1044。52703。。。 (8)
五进制:4143。3133 3334。。(5)

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

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