0-255 的數值利用char 再組合成AnsiString的方式會產生誤差 詳見內文 |
答題得分者是:暗黑破壞神
|
tyw6455
一般會員 發表:7 回覆:9 積分:3 註冊:2005-06-23 發送簡訊給我 |
我用亂數產生器產生一連串0~255的數值
然後我用下列的方式把產生的數值組成一個字串: [code cpp] int iHigh; char cHigh; AnsiString sData = 0; for (int i = 0; i < 401; i ) { iHigh = random(256); cHigh = iHigh; sData = (AnsiString)cHigh; } [/code] 然後再用SubString的方式把sData裡面的每一個一個還原成數值 結果發現產生的數值跟組成字串後再拆解的數值份會不一樣 下面是兩個產生出來的值 亂數產生器產生的數值 46 74 174 46 204 102 19 109 79 59 121 178 165 251 98 231 156 60 237 145 組成字串之後再轉換的值 46 74 -82 46 -52 102 19 109 79 59 121 -78 -91 -5 98 -25 -100 60 -19 -111 當然這只是一部份的值 請問為什麼會有這樣的結果呢?有什麼辦法可以解決? 當然用char的陣列就可以解決了不過有時候字串會比較方便有誰能提供意見嗎?謝謝 |
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
|
tyw6455
一般會員 發表:7 回覆:9 積分:3 註冊:2005-06-23 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |