十进制整数C语言
① c语言 将十进制整数化成任意进制的数
将任意进制的整数化成十进制整数
一、目的和要求
1.应用循环进行幂运算。
2.掌握其它进制的数化成十进制数的计算方法。
3.转换的结果正确。
二、实验内容
1.键盘上任意输入一个任意进制的整数及它的进制。
2.根据其它进制的数化成十进制数的计算方法,编写程序将其转换成十进
制的数。
三、算法
设输入的数为:a0a1a2…an
其进制为:base
则
mun=a0×basen-1+an-1×basen-2+…a1×base1+a0×base0
② 在c语言中"%d"(以十进制整数类型)的输入多少如何判断啊
这个不是固定不变的,要看你需要几个输入的变量,然后再声明几个,
比如说我需要输入成绩,只是一次一个同学的成绩就可以这么写,
main()
{
int x; //需要的变量
sprintf("请输入学生的成绩\n");
scanf("%d",&x);
/*注意“&x“,就是上面的那个x,只是多加一个取地址符号&,表示取得输入的x值。当然就要加一个%d*/
}
%d的多少不是随意加上的,而是随着你的需要(你打算声明几个数),来添加的
③ c语言中什么样的数是十进制整数
在c语言中,整型变量输出的格式三种:10进制数、十六进制数和八进制数
int i=10;
printf("%d, %o, %x\n", i, i, i);如果不做处理,无法输出二进制数的。
④ c语言编程 将10进制整数转化成任意进制整数
将任意进制的整数化成十进制整数 一、目的和要求 1.应用循环进行幂运算。 2.掌握其它进制的数化成十进制数的计算方法。 3.转换的结果正确。 二、实验内容 1.键盘上任意输入一个任意进制的整数及它的进制。 2.根据其它进制的数化成十进制数的计算方法,编写程序将其转换成十进 制的数。 三、算法 设输入的数为:a0a1a2
⑤ C语言 怎么把一个整数转化为十进制
哈哈哈,刚好我知道,帮你解决一下
就是余数的倒数,十进制转8进制就除8取余数的倒数就行。一样的道理。自己想想
要是还不明白再问。
⑥ c语言编程,将十进制整数转化为二进制
首先需要明确十进制转为二进制的算法:将所需转化的数除以2,所得余数为k1,将所得商再除以2,所得余数为k2…...重复步骤直到商为0;读数时从最后一个余数读起,即kn,k(n-1)…k2,k1;所得数便是转化成的二进制数(除二取余法)
⑦ C语言 十进制整数转换成base进制数
#include <stdio.h>
#include <string.h>
#include "stdlib.h"
#include <conio.h>
#define size 100
//定义一个栈
typedef struct
{
int x[size];
int top ;
}stack;
//栈初始化
void init(stack &p){
p.top=0;
}
//入栈
int push(stack &p,int &e){
if (p.top<size)
{
p.x[p.top++]=e;
return 1;
}
return 0;
}
//出栈
int pop(stack &p,int &e){
if (p.top>0)
{
e=p.x[--p.top];
return 1;
}
return 0;
}
//将 n进制数据转化为十进制表示
void td(char s[],int n,int &num){
char *p;
int e;
p=s;
num=0;
while(*p){
if(*p>='A') //16 进制转化
e=*p-'A'+10;
else
e=*p-'0';
p++;
num=num*n+e;
}
}
//将十进制转化为 m 进制
void tp(int num,int m,char s[]){ //
int n=0,e;
char *p;
stack b; init(b);
p=s;
while(num){ //将十进制数据逐位分离 压入栈中 此时 数据为倒序
n=num%m;
if(n>9)
e=n-10+'A';
else
e=n+'0';
push(b,e);
num/=m;
}
while(pop(b,e)){ //从栈中取出元素,存入数组 s 中 此时 数据为顺序
*p=e;
p++;
}
*p='\0'; //在数组 尾部加结束标志
}
int check(char s[],int n){
char *p;
p=s;
if(n<=10){
while(*p){
if(*p-'0'>n)
return 1;
p++;
}
}
else if(n>10){
while(*p){
if(*p>='A'&&*p-'A'+10>n)
return 1;
p++;
}
}
return 0;
}
void trans(char s[],int n,int m){
int *p,num;
td(s,n,num);
s[0]='\0';
tp(num,m,s);
}
void main(){
int n,m;
char s[size],c;
int fp=1; //是否结束的标志
do{
puts("\t\t\t数据的各个进制之间的转化\n");
s[0]='\0'; //数组初始化
printf("\n输入一个数据: "); gets(s); //读入数据 字符串型
printf("\b输入原来的进制 和 要转化的进制, 如 10-2 : ");
scanf("%d%c%d",&n,&c,&m); //读入 进制转化 由 n进制转化为 m进制 输入形式 如:10-2 16-2
if(check(s,n)) { //判断是否合法
printf("\n\t错误 !输入的数据与进制不相配, 按任意键,继续输入。");
getch();
}
else{
printf("\n结果\n\t\t\t%d 进制 : %s ",n,s);
trans(s,n,m);//转化
printf("\n \t\t\t%d 进制 : %s \n\n",m,s); //输出 数据 字符串型
printf("\t\t\t继续输入 1, 退出输入 0: ");
scanf("%d",&fp);
}
c=getchar(); //读取 回车键
system("cls");
}while(fp);
}
⑧ C语言中如何将一个十进制整数以二进制形式输出
#include "stdio.h"
#include <stdio.h>
#include <stdlib.h>
void main()
{
int a;
char c[33]; //int的范围比较大 从[-2^31,2^31 -1],所以取18可能会有问题
scanf("%d", &a);
//实现进制转换扩展库里面已经提供了很好的函数了,拿来用就可以了
//需要注意的是加一下头文件#include <stdlib.h>
//2就是表示2进制。。你还可以换成任何你想要的进制
itoa(a, c, 2);
//其实C本身提供了很强大的库模版,你都可以拿来用,还有STL模版……
//当然,如果你真的只是为了体验下这个程序,那么算我没说,哈哈。。
//~~~
printf("%d'S BINARY IS: %s\n",a,c);
}
⑨ C语言把十进制整数转化为二进制整数
itoa()函数可以实现,根据itoa()第三个参数(2/8/10)可以进行二、八、十六进制的转换,转换后为字符串,如要求是int,可以用atoi实现字符串与int之间的转换举例:#include "stdio.h"#include "stdlib.h"int main(){int L1;printf("输入数字\n");scanf("%d", &L1);char str1[256];char str2[256];char str3[256];itoa(L1, str1, 2);itoa(L1, str2, 8);itoa(L1, str3, 16);printf("2进制:%s\n8进制:%s\n16进制:%s\n",str1,str2,str3);return 0;}