當前位置:首頁 » 編程語言 » c語言代碼轉換器
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言代碼轉換器

發布時間: 2022-06-28 09:20:34

㈠ pascal代碼轉c語言的轉換器

學pascal和C兩年余,從未聽說過有這樣的軟體。如果你學過編譯原理的話,你就會知道不同語言的編譯器對代碼的處理方式不同,你所提到的軟體要實現起來非常困難,所以目前還未發現有此類軟體,只能靠人工處理。

㈡ 如何將C語言代碼轉換為應用程序

有C語言源代碼,要將之轉換為可執行的應用軟體方法如下:

1、准備一個C語言的編譯器,比如TC2.0等等

2、運行編譯器TC2.0

3、載入源代碼

4、按Alt-F9。

㈢ 有沒有將c語言源代碼轉換成匯編語言的軟體

如果只是想得到C語言或C++語言的匯編代碼

可以通過指定編譯器的選項來達成目的,這里我們用1998年生產的Windows平台VC6.0的SDK舉例(以傳統的命令行編譯環境方式,對應的IDE集成開發環境可在工程》設置里在編譯選項里加入/Fa即可):

開始》運行,輸入cmd啟動命令行,
若安裝了VC6.0的SDK(或其IDE集成開發環境),默認路徑為"C:\Program Files\Microsoft Visual Studio「
命令行輸入"C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT"回車執行初始化編譯環境
命令行輸入 mkdir CtoASMTest建立測試目錄,並進入該目錄,命令行輸入 cd CtoASMTest
用記事本建立測試代碼,命令行輸入notepad CtoASM_test.c回車確認,輸入以下測試C代碼
int main(int argc,char* argv[]){
int i;
for(i = 0; i < argc; ++i){
printf("argv[%d] is:\t%s\n",i,argv[i]);
}
printf("CtoASM_test end.\n");
}
若直接默認編譯,命令行輸入cl CtoASM_test.c,則會產生對象文件*.obj和目標文件*.exe
命令行輸入dir 列出測試目錄文件清單如下,多了obj和exe編譯產生的文件
CtoASM_test.c
CtoASM_test.exe
CtoASM_test.obj
若想得到c文件對應的匯編語言文件,可以指定匯編文件產生選項 /Fa,即cl /Fa CtoASM_test.c則會同時產生匯編文件CtoASM_test.asm,內容如下
TITLE CtoASM_test.c
.386P
include listing.inc
if @Version gt 510
.model FLAT
else
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
_DATA SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA ENDS
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST ENDS
_BSS SEGMENT DWORD USE32 PUBLIC 'BSS'
_BSS ENDS
_TLS SEGMENT DWORD USE32 PUBLIC 'TLS'
_TLS ENDS
FLAT GROUP _DATA, CONST, _BSS
ASSUME CS: FLAT, DS: FLAT, SS: FLAT
endif
PUBLIC _main
EXTRN _printf:NEAR
_DATA SEGMENT
$SG41 DB 'argv[%d] is:', 09H, '%s', 0aH, 00H
ORG $+3
$SG42 DB 'CtoASM_test end.', 0aH, 00H
_DATA ENDS
_TEXT SEGMENT
_argc$ = 8
_argv$ = 12
_i$ = -4
_main PROC NEAR
; File CtoASM_test.c
; Line 1
push ebp
mov ebp, esp
push ecx
; Line 3
mov DWORD PTR _i$[ebp], 0
jmp SHORT $L37
$L38:
mov eax, DWORD PTR _i$[ebp]
add eax, 1
mov DWORD PTR _i$[ebp], eax
$L37:
mov ecx, DWORD PTR _i$[ebp]
cmp ecx, DWORD PTR _argc$[ebp]
jge SHORT $L39
; Line 4
mov edx, DWORD PTR _i$[ebp]
mov eax, DWORD PTR _argv$[ebp]
mov ecx, DWORD PTR [eax+edx*4]
push ecx
mov edx, DWORD PTR _i$[ebp]
push edx
push OFFSET FLAT:$SG41
call _printf
add esp, 12 ; 0000000cH
; Line 5
jmp SHORT $L38
$L39:
; Line 6
push OFFSET FLAT:$SG42
call _printf
add esp, 4
; Line 7
mov esp, ebp
pop ebp
ret 0
_main ENDP
_TEXT ENDS
END
其中還可以產生其它文件,可以參考編譯器的選項說明,命令行輸入cl /?查看幫助,其中關於產生的輸出文件類型可以有以下選擇
-OUTPUT FILES-

/Fa[file] name assembly listing file /Fo<file> name object file
/FA[sc] configure assembly listing /Fp<file> name precompiled header file
/Fd[file] name .PDB file /Fr[file] name source browser file
/Fe<file> name executable file /FR[file] name extended .SBR file
----------------------------------------------
補充,
其它平台的編譯器也有類似的匯編輸出選項,如類Unix平台的GNU編譯器cc -S CtoASM_test.c和gcc -S CtoASM_test.c 都可以通過指定-S選項產生c或c++代碼對應的匯編語言文件。

㈣ 急求:C語言進制轉換器代碼完善...又加分了!!!


void
two_ten()
{
long
num;
int
b,TheTen=0,Total=0;
printf("\n請輸入一個二進制數(只包含0或1):");
scanf("%ld",&num);
while(num)
{
b=num-(int)(num/10)*10;
TheTen+=b*pow(2,Total);;
Total++;
num=(int)(num/10);
}
printf("轉換為十進制:");
//列印
printf("%d",TheTen);
printf("\n");
}
void
eight_ten()
{
int
num,
i;
int
arr[20];
printf("\n請輸入一個八進制數(只由0~7之前的數組成):");
scanf("%o",&num);
printf("轉換為十進制:");
//列印
printf("%d",num);
printf("\n");
}
void
sixteen_ten()
{
int
num,
i;
int
arr[20];
printf("\n請輸入一個十六進制數(只由0~9和A~F之前的數組成):");
scanf("%X",&num);
printf("轉換為十進制:");
//列印
printf("%d",num);
printf("\n");
}

㈤ 請教如何用C語言實現10進制轉換5進制的轉換器

//這是我數據結構課上老師留的課堂作業,但是此代碼並非本人原創。但已通過驗證。
//這個代碼可以把十進制的轉換成任意進制的。
#include<stdio.h>
#include<stdlib.h>
#define STACK_INIT_SIZE 50
#define STACK_INCREMENT 10
//①------------棧定義--------
typedef struct{
int *base;
int *top;
int stacksize;
}Stack;
//②-----------構造棧---------
Stack InitStack()
{
Stack s;
s.base=(int *)malloc(STACK_INIT_SIZE*sizeof(int));
if(!s.base) exit(0);
s.top=s.base;
s.stacksize=STACK_INIT_SIZE;
return s;
}
//③------------判空----------
int StackEmpty(Stack s)
{
if(s.base==s.top) //若為空,返回1
return 1;
else
return 0;
}
//④---------- 清空棧----------
void ClearStack(Stack s)
{
s.top=s.base;
}
//⑤------------壓棧-------------
void Push(Stack *s,int elem) //必須用指針,否則top地址出了函數後不變
{
if((s->top-s->base+1)>=s->stacksize)
{
s->base=(int *)realloc(s->base,(STACK_INCREMENT+s->stacksize)*sizeof(int));
if(!s->base) exit(0);
s->top=s->base+s->stacksize;
s->stacksize+=STACK_INCREMENT;
}
*(s->top++)=elem;
}
//⑥------------出棧---------------
int Pop(Stack *s) //必須用指針,否則top地址出了函數後不變
{
if(s->base==s->top)
{
printf("棧為空!");
exit(0);

}
//printf("%d ",*(--s.top));
return *(--s->top);
}
//⑦------------求棧長-----------
int GetLength(Stack s)
{
return s.top-s.base;
}
//⑧-------------求棧頂----------
int GetTop(Stack s)
{
if(s.top==s.base)
{
printf("棧為空!\n");
exit(0);
}
return *(s.top-1);
}
//------------主函數-----------
int main()
{
int d1,d2,d3;
Stack s,*s1;
s=InitStack();
s1=&s;
/*
printf("stacksize=%d\n",s.stacksize);
Push(s1,5);
length=GetLength(s);
printf("棧長為:%d\n",length);
Push(s1,8);
length=GetLength(s);
printf("棧長為:%d\n",length);
printf("top=%d\n",GetTop(s));
printf("%d ",Pop(s1));
length=GetLength(s);
printf("棧長為:%d\n",length);
printf("%d ",Pop(s1));
length=GetLength(s);
printf("棧長為:%d\n",length);
*/
printf("輸入要轉換的十進制數及要轉換為幾進制:(d1 d2)\n");
scanf("%d%d",&d1,&d2);
d3=d1;
while(d1>=d2)
{
Push(s1,(d1%d2));
d1=d1/d2;
}
Push(s1,d1);
printf("%d轉化為%d進制後為:\n",d3,d2);
while(!StackEmpty(s))
{
printf("%d",Pop(s1));
}
printf("\n");
}

㈥ 十六進制轉換器C語言代碼

#include<stdio.h>
void choose() /*功能:詢問是進行數值轉換還是轉換為十六進制ASCII碼*/
{
char *ask;
printf("請問您想進行數值轉換還是進行ASCII碼轉換?(輸入\"數值\"或\"字元\")");
scanf("%s",ask);
switch(ask)
{
case "數值":id_b;break;
case "字元":cd_b;break;
default:choose();
}
}
void id_b() /*數值轉換功能(按上述要求輸入「數值」)*/
{
int x; /*存儲輸入的數據*/
printf("您想轉換的數字是:\n");
scanf("%d",&x); /*讀取數據*/
printf("%d的十六進制形式為%0X!!\n",x,x);
}
void cd_b() /*字元轉換功能(按上述要求輸入「字元」)*/
{
char a; /*存儲輸入的數據*/
printf("您想轉換的字元是:\n");
a=getchar(); /*從鍵盤讀取一個字元*/
printf("%c的十六進制ASCII碼是%0X!!\n",a,a);
}
main()
{
printf("歡迎使用由870725697真心獻上的程序!\n");
choose();
printf("如果您覺得滿意的話,一定要給分哦!\n");
getch();
}

㈦ 有沒有能把C語言代碼轉換成C++語言的軟體

c++可以兼容c的,不需要轉換,c語言的 windows.h 可以用c++的cwindows,其餘的 都可以類推;
真的要轉換的話,換的東西少的很,完全兼容,不需要任何修改.

㈧ c語言版的進制轉換器的源代碼會不,謝了

花半個小時自己寫的丫……

#define P printf // 輸出
#define F fflush(stdin) // 清空緩存
#define S scanf // 輸入
#define PX printf("**************************************\n\t")
#include <stdio.h> // 頭文件從此開始
#include <iostream>
void WEL()
{
printf("\t\t***********************************************\n");
printf("\t\t** WELCOME: This is a C gragram!!! **\n");
printf("\t\t***********************************************\n\n\n\n\a");
}

void main()
{
WEL();
void ZH10(int a,int b);
void ZH8(int a,int b);
void ZH16(int a,int b);
int a,b; // a為將要轉換的字元,b為將要轉換成的類型
int c; // c為輸入數據類型控制字元
char z; // z為程序控制字元
z='y';
char y; // y為關機控制字元
int i=1; // i為循環控制字元
PX;
P("\n整數轉換器");
P("輸入提示:\n");
P("\t10 代表十進制\n");
P("\t8 代表八進制\n");
P("\t16 代表十六進制\n");
for(i;;i++)
{
if(z=='n'||z=='N')
{
exit(0);
}
else if(z=='u'||z=='U')
{
system("shutdown -s");
P("按 A 取消關機命令");
fflush(stdin);
S("%c",&y);
while(y=='a'||y=='A')
{
system("shutdown -a");
exit(0);
}
}
else
{
P("\n\n\n\n\t\t第%d次運算\n\a",i);
PX ;
{
P("輸入你即將轉換數字的原類型\n");
F;
S("%d",&c);
if(c==8)
{
ZH8(a,b);
}
else if(c==16)
{
ZH16(a,b);
}
else if(c==10)
{
ZH10(a,b);
}
else
{
P("原類型輸入有誤!!!\n");
}
}
}
P("\n\t\t第%d次運算結束\n\a",i);
PX;
printf("\n是否繼續??(Y/N)需要30秒關機直接按「U」\n");
fflush(stdin);
scanf("%c",&z);
printf("%c\t\n\n",z);
}
}

void ZH8(int a,int b)
{
P("輸入你要轉換的一個八進制數字和將要轉換成的類型10或16(逗號間隔)\n");
F;
S("%o,%d",&a,&b);
if(a<=0177777&&a<=0)
{
if(b==10)
{
P("八進制%o的十進制輸出值為:%d\n",a,a);
}
else if(b==16)
{
P("八進制%o的十六進制輸出值為:%x\n",a,a);
}
else
{
P("轉換類型輸入有誤!!!\n");
}
}
else
{
P("轉換數字輸入無效!!!\n");
}
}

void ZH16(int a,int b)
{
P("輸入你要轉換的一個十六進制數字和將要轉換成的類型8或10(逗號間隔)\n");
F;
S("%x,%d",&a,&b);
if(a<=0xffff&&a>=0x0)
{
if(b==10)
{
P("十六進制%x的十進制輸出值為:%d\n",a,a);
}
else if(b==8)
{
P("十六進制%x的八進制輸出值為:%o\n",a,a);
}
else
{
P("轉換類型輸入有誤!!!\n");
}
}
else
{
P("轉換數字輸入無效!!!\n");
}
}

void ZH10(int a,int b)
{
P("輸入你要轉換的一個十進制數字和將要轉換成的類型8或16(逗號間隔)\n");
F;
S("%d,%d",&a,&b);
if(a<=32767&&a>=-32768)
{
if(b==8)
{
P("十進制%d的八進制輸出值為:%o\n",a,a);
}
else if(b==16)
{
P("十進制%d的十六進制輸出值為:%x\n",a,a);
}
else
{
P("轉換類型輸入有誤!!!\n");
}
}
else
{
P("轉換數字輸入無效1!!\n");
}
}

㈨ 語言轉換器: 將BASIC源程序轉換為C語言源程序

這個幾乎是不可能的
一個是行編譯的 一個是按文件編譯的
語法上和類型上也有很大的區別
基本無法逐一轉換

而如果編譯basic再反編譯成C 那麼又很可能出錯

所以 你還是放棄吧

㈩ C語言,使用數組,編寫一個十進制正整數轉換為二進制數的轉換工具

#include<stdio.h>

intmain()
{
inti=0,j=0,a=0,n[100]={0};
scanf("%d",&a);
printf("input=%d ",a);
while(a)
{
n[i++]=a%2;
a/=2;
}

for(j=i-1;j>=0;j--)
{
printf("%d",n[j]);
}

printf(" ");
return0;
}

65

input=65

1000001