char型別
棧空間,遇到-1結束迴圈。
int型別則遇到-1不會結束迴圈。
4個位元組的int。
每個漢字由兩個負數組成。
對映過去後,-68變成了:256-68=188。
int型別讀過去變成了正數。
讀到-1,不過是255,0xff。
0xff是8個1,不會退出迴圈,32個1,全是ff才退出迴圈。
char型別才是8個1,就結束讀取迴圈。
漢字的編碼問題:
漢字的asc值為什麼會是負數 - 程式人生,學海無涯 - csdn部落格
漢字存放在計算機中,稱為:機內碼。
它和ascii碼,是有根本區別的。
ascii碼是用來存放阿拉伯數字、英文、符號等等,和漢字,沒有一丁點關係。
「中」的機內碼是 d6d0。
d6d0,當成有符號數,寫成十進位制數字就是-10544;
d6d0,當成無符號數,寫成十進位制數字就是 54992。
英文標準的ascii碼中只有128個符號,只需要7位,但是計算機分配儲存的最基本單位是位元組,至少是8位,因此最高位為0;
因此常見的西文符號的ascii都是在0-127之間,無論是有符號還是無符號去觀察它們,都是正的。
中文的符號遠超過256個,因此用乙個位元組不能儲存漢字,早期的gb2312採用了兩個位元組。
但是很麻煩的問題是乙個漢字用兩個位元組儲存在計算機中後,和兩個西文字母的ascii混淆,為了避免這個混淆,漢字兩個位元組的最高位都是1。
如果用有符號的數去讀取乙個漢字的內容,最高位的1正好和負號位置相同,因此此時就會發現漢字的內嗎是負的。
MPICH 中讀取檔案的問題
用mpi i o讀取檔案時,讀出的數字不正確。為了驗證錯誤,寫了乙個簡單程式。想要讀取的資料 feifei.dat 2 3 4 5 6 讀檔案的程式 include include include mpi.h using namespace std int main int argc,char ar...
C 中讀取Excel檔案的類封裝
總是感覺對於c 中讀取excel檔案是非常麻煩,還是決定自己來封裝乙個基於com介面的類解決這個問題。整體設計以及實現如下 首先 入對於microsoft.csharp以及office object library excel object library 譬如12.0版本的引用 public se...
讀取檔案的操作1
今天的工作把乙個excel 用c 儲存進記憶體,並取出最大值.excel 有20個sheet,每個sheet表示一行,每個sheet內又有很多列,乙個sheet內最多有20行。我需要將每行的每列的最大值求出來取出。程式如下 include include include include includ...