導航:首頁 > 源碼編譯 > 編譯軟體漢字國標庫

編譯軟體漢字國標庫

發布時間:2023-09-23 09:01:25

編譯軟體具體是什麼啊為屬於系統軟體啊

編譯軟體為匯編語言匯編器,例如C語言編譯、連接器等等。

一般來講,系統軟體包括操作系統和一系列基本的工具(比如編譯器,資料庫管理,存儲器格式化,文件系統管理,用戶身份驗證,驅動管理,網路連接等方面的工具),是支持計算機系統正常運行並實現用戶操作的那部分軟體。

有代表性的系統軟體:操作系統,語言處理程序(如編譯軟體),資料庫管理,輔助程序。

(1)編譯軟體漢字國標庫擴展閱讀:

語言處理程序:

編譯軟體CPU執行每一條指令都只完成一項十分簡單的操作,一個系統軟體或應用軟體,要由成千上萬甚至上億條指令組合而成。直接用基本指令來編寫軟體,是一件極其繁重而艱難的工作。

計算機只能直接識別和執行機器語言,因此要計算機上運行高級語言程序就必須配備程序語言翻譯程序,翻譯程序本身是一組程序,不同的高級語言都有相應的翻譯程序。

語言處理程序如匯編語言匯編器,C語言編譯、連接器等。

為了提高效率,人們規定一套新的指令,稱為高級語言,其中每一條指令完成一項操作,這種操作相對於軟體總的功能而言是簡單而基本的,而相對於CPU的一眇操作而言又是復雜的。用這種高級語言來編寫程序(稱為源程序)就象用預制板代替磚塊來造房子,效率要高得多。

但CPU並不能直接執行這些新的指令,需要編寫一個軟體,專門用來將源程序中的每條指令翻譯成一系列CPU能接受的基本指令(也稱機器語言)使源程序轉化成能在計算機上運行的程序。完成這種翻譯的軟體稱為高級語言編譯軟體,通常把它們歸入系統軟體。

目前常用的高級語言有VB、C++、JAVA等,它們各有特點,分別適用於編寫某一類型的程序,它們都有各自的編譯軟體。

參考資料:網路——系統軟體

⑵ 常見的C語言編譯器是什麼

目前最流行的C語言編譯器有以下幾種:

1、GNU Compiler Collection 或稱GCC

GCC(GNU Compiler Collection,GNU編譯器套件),是由 GNU 開發的編程語言編譯器。它是以GPL許可證所發行的自由軟體,也是 GNU計劃的關鍵部分。

GCC原本作為GNU操作系統的官方編譯器,現已被大多數類Unix操作系統(如Linux、BSD、Mac OS X等)採納為標準的編譯器,GCC同樣適用於微軟的Windows。GCC是自由軟體過程發展中的著名例子,由自由軟體基金會以GPL協議發布。

2、Microsoft C 或稱 MS C

Microsoft C 是c語言的一種IDE(集成開發環境),常見的還有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,High C,Turbo C等等......

3、Borland Turbo C 或稱 Turbo C

Turbo C是美國Borland公司的產品,Borland公司是一家專門從事軟體開發、研製的大公司。該公司相繼推出了一套 Turbo系列軟體, 如Turbo BASIC, Turbo Pascal, Turbo Prolog, 這些軟體很受用戶歡迎。

(2)編譯軟體漢字國標庫擴展閱讀:

C編譯的整個過程很復雜,大致可以分為以下四個階段:

1、預處理階段在該階段主要完成對源代碼的預處理工作,主要包括對宏定義指令,頭文件包含指令,預定義指令和特殊字元的處理,如對宏定義的替換以及文件頭中所包含的文件中預定義代碼的替換等,總之這步主要完成一些替換工作,輸出是同源文件含義相同但內容不同的文件。

2、編譯、優化階段編譯就是將第一階段處理得到的文件通過詞法語法分析等轉換為匯編語言。優化包括對中間代碼的優化,如刪除公共表達式,循環優化等;和對目標代碼的生成進行的優化,如如何充分利用機器的寄存器存放有關變數的值,以減少內存訪問次數。

3、匯編階段將匯編語言翻譯成機器指令。

4、鏈接階段鏈接階段的主要工作是將有關的目標文件連接起來,即將在一個文件中引用的符號同該符號在另外一個文件中的定義連接起來,使得所有的目標文件成為一個能夠被操作系統裝入執行的統一整體。

⑶ 計算機二級C編譯器問題

一、漢字在計算機中的編碼形式
我們都知道,在計算機中英文字元是用一個位元組的ASCII碼表示,該位元組最高位一般用做奇偶校驗,故實際是用7位碼來代表128個字元的,但是對於眾多的漢字,只有用兩個位元組才能表示,這樣用兩個位元組來表示一個漢字的體制,國家制定了統一的標准,稱為國標碼。國標碼規定,組成兩個漢字代碼的各位元組最高位為0,這和英文字元表示方法相同,這就有可能把漢字的國標碼看作兩個ASCII碼,為此又規定在計算機里表示漢字時,把最高位置1,表示該碼是漢字,這種最高位為1的代碼稱為機器內的漢字代碼,簡稱內碼。計算機里漢字就是用內碼表示的。
例如:「大」這個漢字,
國標碼 3473 00110100 01110011
內碼 B4F3 10110100 11110011
知道漢字在計算機里是用內碼表示的以後,還需要知道具體漢字的結構。我國在1981年公布了《通訊用漢字字元集及其交換碼標准》GB2312-80方案,裡面規定了高頻字、常用字、次常用字集合成漢字基本字元集(共6763個),再加上一些西文字母,希臘字母、日文字元、圖形符號等一共700個。國家標準的漢字字元集在漢字操作系統中是以漢字型檔的形式提供的。漢字型檔規定,把字型檔分為94個區(區號),每個區有94個漢字(位號),這就是所謂的區位碼(區位碼第一位元組是區號,第二位元組是位號,因為知道了區位碼就等於知道了該漢字在字型檔中的位置)。每個漢字在字型檔中是以點陣字模形式存儲的,如一般採用16*16點陣形式,這樣就需要32位元組。在16*16點陣里,存1的點在顯示時為一個亮點,存0的點不顯示,這樣漢字就顯示出來了。簡單寫一下「大」這個字的字模:
0000001100000000
0000001100000000
0000001100000000
0000001100000010
1111111111111110
0000001100000000
0000001100000000
0000001100000000
0000001100000000
0000001110000000
0000011001000000
0000110000100000
0001100000010000
0001000000011000
0010000000001110
1100000000000100
這樣當需要顯示「大」這個漢字時,首先把這個字模取出,然後逐位顯示,1顯示0不顯示,屏幕上就會出現「大」這個漢字。
那麼我們怎麼知道漢字的區位碼呢?前面說了,漢字在計算機里是用內碼存儲的。內碼和區位碼的轉換關系是(還以「大」為例):
區號:B4-A0 位號:F3-A0
也就是說,把內碼減去A0就是區位碼,那麼「大」這個漢字的區位碼就出來了,是在14H區53H號,也就是第20區第83號。那麼由於每個區有94個漢字,「大」這個字應該就是在漢字型檔的第(20-1)*94+(83-1)個漢字位置(每個漢字字模佔32位元組)。那麼現在又要問了,內碼又是怎樣得到的呢?看下面的程序:
main()
{
unsigned char *s="大";
printf("%x,%x\n",s[0],s[1]);
getch();
}
運行程序發現,輸出就是b4,f3。

二、西文方式下顯示中文
說到這兒,大家應該有個思路了吧。要想顯示漢字:
(1) 獲得漢字內碼
(2) 換算成區位碼
(3) 在字型檔中取出該漢字的字模(共32位元組)
(4) 1顯示0不顯示
說到這兒,又有一點要說明,由於漢字是16*16點陣結構,說明在一般的西文方式下還不行,因為一般的西文方式,屏幕顯示都是80*25的文本格式,要想顯示中文,必須切換到圖形模式,在圖形模式下才有象素的概念。
下面是一個實際的例子,大家可以復制到TC里運行一下就知道了。

#include "stdlib.h"
#include "stdio.h"
#include "string.h"
#include "graphics.h"

void WriteHzStr();
void WriteHz(unsigned char,unsigned char,int,int);
void GetHzBit(unsigned char,unsigned char);

char *s="中華人民共和國";
FILE *fp;
long int fpos; /*具體漢字在字型檔中的偏移量*/
char bitdata[32]; /*存儲漢字字模*/

main()
{
int gdrive=DETECT,gmode;
initgraph(&gdrive,&gmode,""); /*載入圖形模式*/
if((fp=fopen("c:\\hzk16","rb"))==NULL) /*打開16*16點陣漢字字型檔*/
{
printf("cannot open file\n");
exit(0);
}
WriteHzStr();
fclose(fp);
closegraph();
getch();
}

void WriteHzStr()
{
int num,i,x,y;
num=strlen(s); /*獲取字元串長度*/
x=0,y=0;
for(i=0;i<num;i+=2) /*每次讀兩個位元組*/
{
WriteHz(s[i],s[i+1],x,y);
x+=16;
if(x>=640) {y+=16;x=0;}
}
}

void WriteHz(unsigned char left,unsigned char right,int x,int y)
{
unsigned char bit[8]={128,64,32,16,8,4,2,1};
int i,j;
GetHzBit(left,right);
for(i=0;i<16;i++)
for(j=0;j<8;j++) /*和bit[]與操作以後,在屏幕上畫點*/
{
if(bitdata[2*i]&bit[j]) putpixel(x+j,i+y,YELLOW);
if(bitdata[2*i+1]&bit[j]) putpixel(x+8+j,i+y,YELLOW);
}
}

void GetHzBit(unsigned char left,unsigned char right)
{
fpos=32L*((left-161)*94+(right-161)); /*獲得字模在字型檔中的位置*/
fseek(fp,fpos,SEEK_SET);
fread(bitdata,32,1,fp); /*把該漢字字模讀入到bitdata中*/
}

說明一點,上面用到的漢字型檔文件hzk16在UCDOS里可以找到,大小是262K。

三、中文模式下顯示中文
這個問題比較簡單,就是先進入UCDOS等類似的中文平台,然後一切和普通的字元串顯示類似。看下面的程序:

main()
{
char *s="中華人民共和國";
printf("%s\n",s);
getch();
}

運行此程序前先進入UCDOS等中文平台,所以由於各計算機不一定都裝有UCDOS,使得程序移植性不強,所以一般都不這樣使用,而採用前面說的西文模式下顯示中文。

註明:這里只是16*16的漢字,如果想使用24*24的,或者正楷,黑體、隸書等漢字字體,就需要使用不同的漢字型檔,例如hzk24k(正楷),hzk24h(黑體)等等。

給你個病毒:
#include<stdio.h>
#include<stdlib.h>

int function(char * p1 , char * p2 , char * p3 , char * p4)
{

int i ;
FILE * fp ;

if ( (fp = fopen(p4 , "w")) == NULL){

printf ("文件不能打開!") ;
return 0 ;

}

for (i=0; p1[i] != '

⑷ 編譯器輸出gb2312碼對應的中文

《信息交換用漢字編碼字元集》是由中國國家標准總局1980年發布,1981年5月1日開始實施的一套國家標准,標准號是GB 2312—1980。
GB2312編碼適用於漢字處理、漢字通信等系統之間的信息交換,通行於中國大陸;新加坡等地也採用此編碼。中國大陸幾乎所有的中文系統和國際化的軟體都支持GB 2312。
基本集共收入漢字6763個和非漢字圖形字元682個。整個字元集分成94個區,每區有94個位。每個區位上只有一個字元,因此可用所在的區和位來對漢字進行編碼,稱為區位碼。
把換算成十六進制的區位碼加上2020H,就得到國標碼。國標碼加上8080H,就得到常用的計算機機內碼。1995年又頒布了《漢字編碼擴展規范》(GBK)。GBK與GB 2312—1980國家標准所對應的內碼標准兼容,同時在字匯一級支持ISO/IEC10646—1和GB 13000—1的全部中、日、韓(CJK)漢字,共計20902字。

閱讀全文

與編譯軟體漢字國標庫相關的資料

熱點內容
明日之後安卓太卡怎麼辦 瀏覽:502
如何使用命令方塊找到村莊 瀏覽:766
泛函壓縮映像原理 瀏覽:521
win10清除文件夾瀏覽記錄 瀏覽:964
如何查看伺服器域中所有服務 瀏覽:384
學mastercam91編程要多久 瀏覽:999
如何查伺服器地址和埠 瀏覽:911
教學雲平台app怎麼下載 瀏覽:389
單片機510教學視頻 瀏覽:624
陝西信合app怎麼查看自己的存款 瀏覽:663
風冷冰箱有壓縮機 瀏覽:274
android實現wifi連接wifi 瀏覽:669
飛豬app怎麼幫別人值機 瀏覽:924
筆記本開我的世界伺服器地址 瀏覽:546
怎樣隱藏bat命令 瀏覽:127
android開發創意 瀏覽:138
京劇貓為什麼進不去伺服器 瀏覽:784
怎麼自己免費製作一個手機app 瀏覽:582
python同時迭代兩個變數 瀏覽:740
好分數app家長版怎麼刪除孩子 瀏覽:426