当前位置:首页 » 编程语言 » 输出特定进制数c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

输出特定进制数c语言

发布时间: 2022-09-20 10:49:48

⑴ 如何在c语言中输出二进制数

有八进制,十进制和十六进制,不过没二进制,如果要,只能自己写转化
#include
void
main()
{
int
n
=
11;
printf("%o\n",
n);
printf("%d\n",
n);
printf("%x\n",
n);
}

⑵ 编一个c程序:输入一个十进制数,可将该数转换成指定的进制数形式输出.

10进制转换为2进制c++的实现

#include
#include
using namespace std;

void translate_integer_helper(double x, vector& r)
{
bool is_put_zero = false;
int i_part = static_cast(x);
for(int i = 0; i< sizeof(int)*8; i++)
{
if(i_part & 1<<(31-i))
{
is_put_zero = true;
r.push_back('1');
}
else
if(is_put_zero)
r.push_back('0');
}
if(r.size()==0) r.push_back('0');
}

void translate_decimal_helper(double x, vector& r)
{
r.push_back('.');
double f_part = x - static_cast(x);

while(!(-0.0001 <= f_part && f_part<= 0.0001))
{
f_part *= 2;
if(1 == int(f_part))
{
r.push_back('1');
f_part -= 1;

}
else
r.push_back('0');
}
}

void translate(double x, vector& r)
{
translate_integer_helper(x, r);
translate_decimal_helper(x, r);
}

void display(const vector& x)
{
bool is_display_zero = false;
for(vector::const_iterator iter = x.begin(); iter!=x.end(); ++iter)
{
if(*iter == '0' && is_display_zero == false) continue;
is_display_zero = true;
cout.put(*iter);
}
}
int main()
{
double a;
cout<<"请输入一十进制数:";
cin>>a;
vector rslt;
translate(a, rslt);
display(rslt);
cout<<"(该数所对应的二进制数)"< }

⑶ C语言 十六进制怎么输出

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

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

⑷ C语言编程,输入十进制数输出十六进制和八进制

可以通过下面的公式解决

#include<stdio.h>

const int maxn = 128;

const int index8 = 8;

const int index16 =16;

int main()

{int Array8[maxn];

int Array16[maxn];

int n, cot8 = 0;

scanf("%d", &n);

int m = n, cot16 = 0;

while(n) {Array8[cot8++] = n % index8;

n /= index8;}

while(m) {Array16[cot16++] = m % index16;

m /= index16;}

int i;

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

printf("%d", Array8[i]);

puts("");

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

(4)输出特定进制数c语言扩展阅读:

十进制转十六进制的具体方法:

对于整数部分,用被除数反复除以16,除第一次外,每次除以16均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。

对于小数部分,采用连续乘以基数16,并依次取出的整数部分,直至结果的小数部分为0为止。故该法称“乘基取整法”。

10进制数转换成十六进制数,这是一个连续除以16的过程:把要转换的数,除以16,得到商和余数,将商继续除以16,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。

⑸ 有C语言编写一函数,输入一十六进制数,输出相应的十进制数

int
lox_16,lox_10;
cin>>hex>>lox_16;
//c中用(scanf())输入的是4位16进制数
//将16进制数转换为10进制数
注意lox_16已经为16进制数
lox_10=lox_16/1000*pow(10,3)+lox_16/100%10*pow(10,2)+lox_16%100/10*pow(10,1)+lox_16%10*pow(10,0);
//lox_16
是4位的,不是4位,可以自己以这种形式编一个循环

⑹ 用C语言编程,输入一个十进制正整数,输出其对应的十六进制整数。

#include<stdio.h>

int main()

{

int a,*p;

p=&a;

scanf("%d",p);

printf("%x ",*p);

return 0;

}

(6)输出特定进制数c语言扩展阅读:

十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。

十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

⑺ C语言:键盘输入一个十进制整数,输出其对应的二进制、三进制、四进制……十六进制数值。

#defineN"0123456789ABCDEF"
#include<stdio.h>
voidchange(intx,intn,char*p){
chartmp[100];//临时存放转换数
inti,total=0;
while(x){
tmp[total++]=N[x%n];
x/=n;
}
for(i=total-1;i>=0;i--){
p[total-1-i]=tmp[i];
}
if(total==0){
p[0]='0';
p[1]=0;
}
else
p[total-1-i]=0;
}
intmain()
{
chars[100];//用于存放转换的进制的数
inti,x;
printf("把一个数转换成234...16进制数 ");
scanf("%d",&x);
for(i=2;i<=16;i++){
change(x,i,s);
printf("转换成%d进制是:%s ",i,s);
}
}

⑻ c语言编程输入一个整数,输出它的十六进制、八进制、十进制、科学计数法

//C语言:
#include<stdio.h>
intmain(void)
{
inta;
scanf("%d",&a);
printf("8进制:%o 10进制:%d 16进制:%x 科学记数法:%e",a,a,a,a);
return0;
}
//C++:
#include<iostream>
usingnamespacestd;
intmain()
{
inta;
cin>>a;
cout<<endl;
cout<<"8进制:"<<oct<<a<<endl;
cout<<"10进制:"<<dec<<a<<endl;
cout<<"16进制:"<<hex<<a<<endl;
return0;
}

⑼ C语言:写一函数,输入一个十六进制数,输出相应的十进制数。

#include&lt;stdio.h&gt;

#include&lt;math.h&gt;

#include&lt;string.h&gt;

int main()

{

char a[10];

void convert(char a[]);

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

gets(a);//输入十六进制数

convert(a);

return 0;

}

void convert(char a[])

{

int n,i,num=0;

n=strlen(a);

for(i=n-1;i&gt;=0;i--)

{

if(a<i>&gt;='0'&&a<i>&lt;='9')

num+=(a<i>-'0')*pow(16,n-1-i);

else if(a<i>&gt;='A'&&a<i>&lt;='Z')

num+=(10+(a<i>-'A'))*pow(16,n-1-i);

else if(a<i>&gt;='a'&&a<i>&lt;='z')

num+=(10+(a<i>-'a'))*pow(16,n-1-i);

}

printf("转换十进制为:");

printf("%d",num);

}

(9)输出特定进制数c语言扩展阅读:

gets()的用法:

gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束;但回车符不属于这个字符串。其调用格式为:gets(s);其中s为字符串变量(字符串数组名或字符串指针)。

gets(s)函数与scanf("%s",s)相似,但不完全相同,使用scanf("%s",s)函数输入字符串时存在一个问题,就是如果输入了空格会认为输入字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到回车为止。

示例:

#include&lt;stdio.h&gt;

int main()

{

char s[20];

printf("What's your name? ");

gets(s);

printf("%s ",s);

return 0;

}

当输入a bde回车的时候,会输出a bde。

⑽ 用c语言写一个函数,输入一个十进制数,输出对应的N进制数,求解

//十进制转其它进制
#include<stdio.h>
#definecharset"0123456789ABCDEFGHIJKLMNOPQ"
intlongtoother(longx,intn,char*p){//整数部分转换进制,返回数字长度
inti=0,k,m,mm;
char*pp=p;
if(x==0){*p='0';*(p+1)=0;return1; }
else{
while(x!=0){//i用于计数共多少位
k=x%n; *pp=charset[k];
pp++; x/=n; i++;
}
*pp=0; m=i;
for(i=m-1,k=0;i>k;i--,k++){
mm=p[i];p[i]=p[k];p[k]=mm;
}
returnm;
}
}
char*dectoother(doublex,intn,char*p,intxx){//xx用于指定小数位长度
inti,m;
longxi;
doublexf;
char*pp=p;
xi=(long)x;//整数部分
xf=x-xi;//小数部分
m=longtoother(xi,n,pp);//转换整数部分
if(xf==0){p[m]=0;returnp;}
p[m]='.';
for(i=1;i<=xx;i++){//转换小数部分
xf=xf*n;
xi=(long)xf;
p[m+i]=charset[xi];
xf=xf-xi;
if(xf==0){p[m+i+1]=0;break;}
}
}
char*Dectoother(doublex,intn,char*p){//把x转换成n进制数
if(x<0){//如果是负数
*p='-';
dectoother(-x,n,p+1,16);
}
else
dectoother(x,n,p,16);
returnp;
}
intmain(){
charstr[100];
intn=16;
doublex=180.125;
printf("%lf的%d进制是:%s ",x,n,Dectoother(x,n,str));
}