c語言轉base,C語言轉C++簡明教程

本文目錄一覽:

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.topsize)

{

p.x[p.top++]=e;

return 1;

}

return 0;

}

//出棧

int pop(stack p,int e){

if (p.top0)

{

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(n9)

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(n10){

while(*p){

if(*p=’A’*p-‘A’+10n)

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語言十進制整數轉換成base進制數

#includestdio.h

#includestring.h

main()

{

long n;

int base,i,a;

char s[100],*p,*q,t;

scanf(“%ld%d”,n,base);

for(i=0;;i++)

{

a=n%base;

n=n/base;

if(a10)

{

s[i]=a+’0′;

}

else

{

s[i]=a-10+’A’;

}

// 停止轉換條件

if(n==0)

{

break;

}

}

s[i+1]=’\0′;/*這是我剛剛補上去的*/

// 高地位倒轉

for(p=s,q=s+i;pq;p++,q–)

{

t=*p,*p=*q;*q=t;

}

puts(s);

}

C語言 可以解釋解釋這裡是怎麼實現轉換成base進制的嗎

給你舉個例子吧 比如 -18 這個數是你要轉換的數字 第一步 x= -18 if (x 0)這裡假設你要轉換的base是16進制的 也就是說base =16;

下面

{

x = (-1) * x;

}

這個執行後就是將x 換成正數,x現在就是 18 了

下來

remainder = x % base; //x和base相除,所得餘數賦給變量remainder

/* 如果餘數大於等於10,則將其轉換為對應的字母,例如,10對應A,11對應B*/

if (remainder = 10)

{

remainder -= 10;

remainder += ‘A’;

}

/* 如果餘數小於10,則將其轉換為對應的數字字符,例如,整數0對應字符0*/

else

{

remainder += ‘0’;

是轉換的 現在 remainder = x % base 執行後 remainder =2 10 所以轉換成’0’+2=’2′ (要是原來的數字是x=31 執行後 remainder =1510,執行的話 remainder =‘A’+15=‘p’ )

bb[k] 用來存放轉換的數字 也就是說bb[0]現在是‘2’了。x=1

一直循環

下來的話b[1]=’1’了x=0 循環結束b[2]=’\0’因為字符串最後必須以‘\0’結尾才行 所以程序最後加了個bb[k] = ‘\0′; //給數組bb中的字符串添加一個字符串結束標誌’\0’

懂了吧?

原創文章,作者:DGNR,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/141231.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
DGNR的頭像DGNR
上一篇 2024-10-04 00:24
下一篇 2024-10-04 00:24

相關推薦

  • MQTT使用教程

    MQTT是一種輕量級的消息傳輸協議,適用於物聯網領域中的設備與雲端、設備與設備之間的數據傳輸。本文將介紹使用MQTT實現設備與雲端數據傳輸的方法和注意事項。 一、準備工作 在使用M…

    編程 2025-04-29
  • Python3.6.5下載安裝教程

    Python是一種面向對象、解釋型計算機程序語言。它是一門動態語言,因為它不會對程序員提前聲明變量類型,而是在變量第一次賦值時自動識別該變量的類型。 Python3.6.5是Pyt…

    編程 2025-04-29
  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬盤。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • Qt雷達探測教程

    本文主要介紹如何使用Qt開發雷達探測程序,並展示一個簡單的雷達探測示例。 一、環境準備 在開始本教程之前,需要確保你的開發環境已經安裝Qt和Qt Creator。如果沒有安裝,可以…

    編程 2025-04-29
  • 猿編程python免費全套教程400集

    想要學習Python編程嗎?猿編程python免費全套教程400集是一個不錯的選擇!下面我們來詳細了解一下這個教程。 一、課程內容 猿編程python免費全套教程400集包含了從P…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29

發表回復

登錄後才能評論