『壹』 c語言中字元編碼到底有啥用
你這個問題挺有意思的。
看得出來你學東西有點思考哈。
說說我的理解
電腦裡面保存的所有東西,其實都是1和0而已
所謂的字元型變數char,本質上和int變數只有長度的區別,也是保存1和0的,並沒有什麼特別之處。一個char變數,就是佔用一個位元組的空間。一個int變數,佔用2個位元組的空間
那這時候有個麻煩,我要輸出一個字母怎麼辦?
比如輸出a
電腦里只有1和0啊,如果要表示大點的數字還好辦,只要多幾位1和0,總可以表示
但是字母呢,符號呢?1 和0如何表示這些東西?
我寫程序時怎麼告訴電腦,我要在屏幕上顯示的是「a」呢?
所以電腦最初的設計者們,就要為字母、數字、常用符號等等設計一套編碼。
讓程序員可以用這些編碼來表示對應的字元。
這個編碼最好是全球統一的,要不同一個編碼,在你的電腦顯示a,在我的電腦顯示b,
那程序還怎麼用?
所以,ASCII應運而生
「使用指定的7 位或8 位二進制數組合來表示128 或256 種可能的字元。標准ASCII 碼也叫基礎ASCII碼,使用7 位二進制數來表示所有的大寫和小寫字母,數字0 到9、標點符號, 以及在美式英語中使用的特殊控制字元。」
有了這么一套約定俗成的東西,我只要輸入對應的ACSII碼,所有的電腦都會幫你輸出對應的符號了。明白了嗎?
其實漢字也一樣,漢字也有其內碼,才能夠通過輸入法來輸入漢字。
『貳』 二級計算機C語言證書編號的含義是什麼
第一位為考試等級(C語言是二級,第一位是2),第二位為考試登記中的具體科目,第三、四位為考試次數,第5~10位為考點報名代碼,第11-14位是考場號,最後兩位是座位號。
C語言是二級,因此其代號為24
『叄』 C語言中如何輸出unicode編碼
Unicode編碼
在計算機科學領域中,Unicode(統一碼、萬國碼、單一碼、標准萬國碼)是業界的一種標准,它可以使電腦得以呈現世界上數十種文字的系統。Unicode是基於通用字元集(Universal Character Set)的標准來發展,並且同時也以書本的形式(The Unicode Standard,目前第五版由Addison-Wesley Professional出版,ISBN-10: 0321480910)對外發表。Unicode包含了超過十萬個字元(在2005年,Unicode的第十萬個字元被採納且認可成為標准之一)、一組可用以作為視覺參考的代碼圖表、一套編碼方法與一組標准字元編碼、一套包含了上標字、下標字等字元特性的列舉等。
Unicode的編碼方式與ISO 10646的通用字元集(Universal Character Set,UCS)概念相對應,目前實際應用的Unicode版本對應於UCS-2,使用16位的編碼空間。也就是每個字元佔用2個位元組。這樣理論上一共最多可以表示216即65536個字元。基本滿足各種語言的使用。實際上目前版本的Unicode尚未填充滿這16位編碼,保留了大量空間作為特殊使用或將來擴展。C++處理Unicode編碼
為了處理Unicode編碼C++為每個字元處理函數提供了寬字元(wchar_t)處理函數。在ANSI/ISO 9899--1990也就是美國國家為程序設計語言C指定的標准(也稱為ANSI C)中是這樣定義的:用多個位元組來代表的字元稱之為寬字元,而Unicode只是寬字元編碼的一種實現,寬字元並不一定是Unicode。
C語言中輸出unicode編碼可以是用寬字元輸出函數。
下面是寬字元常用的輸入輸出函數表:
列印和掃描字元串:
寬字元函數 描述
fprintf()/fwprintf() 使用vararg參量的格式化輸出
fscanf()/fwscanf() 格式化讀入
printf() 使用vararg參量的格式化輸出到標准輸出
scanf() 從標准輸入的格式化讀入
sprintf()/swprintf() 根據vararg參量表格式化成字元串
sscanf() 以字元串作格式化讀入
vfprintf()/vfwprintf() 使用stdarg參量表格式化輸出到文件
vprintf() 使用stdarg參量表格式化輸出到標准輸出
vsprintf()/vswprintf() 格式化stdarg參量表並寫到字元串
輸入和輸出:
寬字元函數 普通C函數 描述
fgetwc() fgetc() 從流中讀入一個字元並轉換為寬字元
fgetws() fgets() 從流中讀入一個字元串並轉換為寬字元串
fputwc() fputc() 把寬字元轉換為多位元組字元並且輸出到標准輸出
fputws() fputs() 把寬字元串轉換為多位元組字元並且輸出到標准輸出串
getwc() getc() 從標准輸入中讀取字元, 並且轉換為寬字元
getwchar() getchar() 從標准輸入中讀取字元, 並且轉換為寬字元
None gets() 使用fgetws()
putwc() putc() 把寬字元轉換成多位元組字元並且寫到標准輸出
putwchar() putchar() 把寬字元轉換成多位元組字元並且寫到標准輸出
None puts() 使用fputws()
ungetwc() ungetc() 把一個寬字元放回到輸入流中
『肆』 c語言設計簡單計算機程序編碼
#include<iostream>
using namespace std;
int main()
{
cout《「HELLO WORLD」《endl;
return 0;
}
『伍』 計算機c語言中0到15的編碼
計算機中 都是二進制編碼
00000
10001
20010
30011
40100
50101
60110
70111
81000
91001
101010
111011
121100
131101
141110
151111
『陸』 C語言中西文最常用的編碼是什麼
微機中普遍使用的字元編碼是ASCII碼嗎?
完全回答,是
ASCII有128字元
ANSI有256個字元(前128個和ASCII相同)
unicode是雙位元組,理論上有大約256*256=65536個字元。
Windows
95/98/ME使用的是GBK(ANSI)內核編碼(兼容ASCII),
Windows
2000/XP/2003是使用得是UNICODE內核編碼(不直接兼容ASCII),但是通過代碼頁也可以直接調用ASCII、ANSI、GB2312、GBK、GB18030等編碼字元。
『柒』 計算機文件編碼解碼c語言如何實現
voidcodec(char*p){*p-=5;}main(){chara[100];inti;printf("Enterthestring!\n");scanf("%s",a);/*輸入字元*/for(i=0;a[i]!='\0';i++){code(a+i);/*加密*/}printf("\ncodestringis:%s",a);for(i=0;a[i]!='\0';i++){codec(a+i);}printf("\nenterstringis:%s",a);}
『捌』 在C語言中如何指定字元串編碼方式
計算機用兩個位元組來表示一個漢字,「我」在內存里就是這樣存放的:CE D2。CE是str[0]的內容,D2是str[1]的內容。第一次循環輸出str[0],但是這個字元在ASCII字元集里代表這樣一個東西Î(不知道在這兒能不能正常顯示……),但是Windows的命令提示符程序讀取到這里就會自動使用寬字元集,也就是說,它已經准備好讀取下一個字元,然後把他們當成一個字元顯示出來。於是就出現了那個漢字。 #include <stdio.h> int main() { printf("%c%c",(char)0xce,(char)0xd2); }
『玖』 c語言是用什麼編碼的
C語言是沒有編碼的。它的編碼就是平台的默認編碼。
比方說在windows 上漢字編碼用gb2312 或者 說cp936(GBK一般的windows默認代碼頁,windows分為不同的代碼頁,可以查看一下MSDN)。
http://msdn.microsoft.com/zh-cn/goglobal/cc305153(en-us).aspx
C里char 就是一個位元組。你定義一個漢字,比方說 char *p=「中」C語言用兩個位元組來存儲;
p指向的兩個位元組存儲的就是『中』的gb編碼。分別是『\xd6\xd0』。
當然如果用printf("%s",p) 輸入到屏幕的話,它會自動解碼輸出『中』這個字。
如果在linux平台下,它一般是uft-8編碼的,道理大概一樣。