導航:首頁 > 源碼編譯 > 寫一個編譯器生成二進制

寫一個編譯器生成二進制

發布時間:2024-10-20 07:37:03

Ⅰ C語言中怎樣輸出一個二進制的數

//我們用按位運算符:右移>>和按位運算符與^,這兩個功能就可以實現。
#include<stdio.h>
voidprintBinary(intnumber);//這是聲明一個自定義的函數,讓編譯器知道我們造了一個這么個函數,功能:將整數以二進制形式輸出。

intmain()
{
printBinary(22);//括弧裡面可以填上你要輸出的整數,比如要輸出22的二進制形式
return0;
}
voidprintBinary()//自定義一個函數printBinary
{
inttemp=sizeof(number)-1;//定義一個變數:如果你的編譯器是32位的,也就是inttemp=31;

while(temp>=0)//temp是循環的次數,不需要糾結判斷是>=還是>,寫完之後檢驗一下就知道哪個對了。

intvalue=number>>temp^1;//a>>temp。temp移動後,是把這個整數的二進制形式中最後一位,依次與1進行按位與運算。假如temp=31,就是把這個整數的二進制形式右移31位,只剩下了這個整數的二進制形式的開頭第一個數字,然後與1進行按位與運算。真則為1,假則為0。

printf("%d",value);//每次輸出整數的二進制形式的一個數字,從開頭開始輸出。.
temp--;//按位右移循環,直到把整數內存中所有的位移完畢。從內存中二進制形式的第一位開始。

}

Ⅱ 編譯時轉化成二進制代碼,需要藉助一定的語法嗎這語法是什麼知識領域里的

機器語言01代碼,有很多種的。

有很多種的 CPU,各有各的機器語言。
機器語言,都是 CPU 廠家規定的。

把 C 語言轉換成機器語言,也有很多種編譯軟體。
這些編譯軟體,有的是由 CPU 廠家編寫的,也有第三方軟體公司編寫的。

進行編譯的時候,都要依據 CPU 廠家規定的機器語言。
編譯後,只能在指定的 CPU 上運行。

想學機器語言,可以從《計算機系統結構》、《組成原理》入手。
網上有電子書。

Ⅲ C語言輸出二進制文件的問題

1、打開編譯器,Ctrl+N新建一個文件;

Ⅳ 如何將一個函數編譯成二進制文件

通過下面這條命令,main.c和swap.c 就產生了一個可執行二進制文件swap

》gcc mian.c swap.c -o swap

那麼這條命令是么樣把源程序變成可執行程序的呢?

步驟如下:

1、驅動程序首先調用C預處理器(CPP)把源文件翻譯成一個ASCII中間文件mian.i,預處理器會把#include所包含的內容都插入到聲明的位置,並且做宏替換,把main.c 文件的第3行 的SIZE替換成2(注意這里只是做簡單的文本替換)。

2、接下來驅動程序的C編譯器將main.i翻譯成匯編語言程序main.s

3、然後驅動程序的匯編器將匯編語言程序main.s 翻譯成可重定位的二進制文件main.o

4、最後運行鏈接器將main.o 與swap.o 以及一些必要的系統目標文件(比如你將調用的printf函數就是printf.o)連接起來變成一個可執行的二進制文件。

閱讀全文

與寫一個編譯器生成二進制相關的資料

熱點內容
直播源碼怎麼弄 瀏覽:989
獵人筆記pdf 瀏覽:885
數據結構冒泡排序演算法 瀏覽:523
column命令 瀏覽:104
java運行的快捷鍵 瀏覽:246
安卓studiokey是什麼 瀏覽:286
app開發先學什麼 瀏覽:578
ox圖pdf 瀏覽:624
scratch編程選擇題如何製作 瀏覽:785
伺服器的陣列卡有什麼作用 瀏覽:888
linux登錄超時 瀏覽:481
播放音樂dll命令 瀏覽:903
javajdk和jre 瀏覽:492
程序員都是怎麼關機的 瀏覽:771
如何更換文件夾的格式 瀏覽:529
openssl不是內部或外部命令 瀏覽:759
西方經濟學宏觀pdf 瀏覽:21
comp命令分析 瀏覽:521
什麼app可以看隧道 瀏覽:155
文件夾兩份相同 瀏覽:100