十進制整數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;}