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 的對數值,然後將結果返...