在c語言中怎樣獲得漢字編碼,在C語言中怎樣獲得漢字編碼?

時間 2021-08-11 17:25:01

1樓:匿名使用者

c語言中,我們用整數輸出字元得到的就是該字元的asii碼,如用整數輸出a,得到97

但是,漢字用的是兩個位元組儲存,我們需要分別輸出者兩個位元組,就相當於輸出該漢子的編碼。

c語言支援ascii,而gb2312與ascii是相容的,所以可以在c語言中獲得漢字的gb2312編碼

gb2312是兩個位元組的,第一位元組是高八位,第二位元組是低八位,比如下面的程式:

#include

#include

int main()

a[0]是「啊」字的高八位,a[1]是低八位,程式執行結果是a[0]=b0 a[1]=a1,用16進製表示的,所以「啊」字的gb2312編碼是b0a1了。輸出時要強制轉換成unsigned char,不然就變成負數了,因為編碼是以8位的無符號整數為單位的。

也可以轉成10進製,例如:

int b=(unsigned char)a[0]*256+(unsigned char)a[1];

b即為漢字的10進製gb2312編碼了

2樓:匿名使用者

漢字編碼分好幾種,不知道你想問的是哪種?

c/c++支援的是ascii,不過漢字編碼中,gb2312與ascii是相容的,所以可以在c中獲得漢字的gb2312編碼

gb2312是兩個位元組的,第一位元組是高八位,第二位元組是低八位,比如下面的程式:

#include

#include

int main()

a[0]是「啊」字的高八位,a[1]是低八位,程式執行結果是a[0]=b0 a[1]=a1,用16進製表示的,所以「啊」字的gb2312編碼是b0a1了~

輸出時要強制轉換成unsigned char,不然就變成負數了,因為編碼是以8位的無符號整數為單位的

當然也可以轉成10進製啦,比如

int b;

b=(unsigned char)a[0]*256+(unsigned char)a[1];

b即為漢字的10進製gb2312編碼了

3樓:聽不清啊

可以得到漢字的每個位元組的ascii碼(內碼)值,也可以得到它們的區位碼:

#include

int main()

{unsigned char s[11]; int i,a,b;

printf("請輸入姓名:");

gets(s);

printf("漢字\tascii碼\t\t內碼\t區位碼\n");

for(i=0;s[i];i+=2)

{ a=s[i]; b=s[i+1];

printf(" %c%c :\t%d %d\t\t%x%x\t%d",a,b,a,b,a,b,a-160);

if(b<170)printf("0%d\n",b-160);

else printf("%d\n",b-160);

system("pause");

return 0;

在c語言中如何輸出空格,在C語言中如何輸出空格

向日葵一樣暖 c語言輸出空格的語句為printf 為轉義字元,用printf 是不能輸出空格的。printf 函式是格式化輸出函式,一般用於向標準輸出裝置按規定格式輸出資訊。printf 函式的呼叫格式為 printf 格式化字串 參量表 格式輸出,它是c語言中產生格式化輸出的函式 在 stdio....

a在c語言中是什麼意思 A 在C語言中是什麼意思

a表示式的值就是變數a的記憶體位址。1 符號是指取位址符,是單目運算子。當你定義乙個變數a,那想知道變數在記憶體中的位址,就可以使用這個符號。這個符號就是指取址,在c語言指標這一章中非常常用。2 符號是位運算子,表示 按位與 是雙目運算子。符號還可以表示 按位與 在計算位址的時候,都是二進位制數了,...

c語言怎樣輸入對數,在c語言中log怎麼輸入

大野瘦子 include include void main c語言中使用對數函式的方法 log 函式 返回以e為底的對數值 標頭檔案 1 include log 函式返回以 e 為底的對數值,其原型為 1double log double x log 用來計算以e為底的 x 的對數值,然後將結果返...