請問是否記憶體重疊 |
尚未結案
|
a1031
一般會員 發表:3 回覆:0 積分:0 註冊:2005-07-26 發送簡訊給我 |
大家好 小弟要撰寫一個轉換程式
將輸入的分成兩筆資料8bit 8bit
然後從第一資料中取出前3個bit當做判斷位元
第一筆的4-8和第二筆的8bit當做資料位元
目前已經撰寫到可以做二進位轉換
並且安排顯示到各自的Edit區
但是不知道為什麼 第二筆資料會影響到第一筆的顯示Edit區
在數值127以前都正常128之後的值就會發生覆蓋現象
底下是程式檔
//----------變數宣告區-----------
String str1,str2;
char chr1[5],chr2[5];
int protoch,protonum;
//-------------------------------
protoch=StrToInt(Edit1->Text);
protonum=StrToInt(Edit2->Text);
itoa(protoch,chr1,2);
Edit5->Text=chr1;
itoa(protonum,chr2,2);
Edit6->Text=chr2;
str1=AnsiString(chr1);
str2=AnsiString(chr2);
Edit3->Text=str1;
Edit4->Text=str2;
//-------------------------------
另外當第一筆資料為0或1,2,3這類型 二進位只有0-2個位元
要如何安排變成說0的時候為000或1的時候為001,2的時候為010,3的時候為011
也就是補3個bit
因為BCB好像不會補齊
有使用過if來偵測字串的Length但是偵測長度大於2的時候就沒辦法了
//-------------------------------
if(str1.Length()<=2)
{
if(str1.Length()==1)
{
str1=str1.Insert("00",0);
Edit3->Text=str1.SubString(1,3);
}
else
{
str1=str1.Insert("0",1);
Edit3->Text=str1.SubString(1,3);
}
}
//------------------------------
小弟不才 請各位幫幫忙 謝謝 發表人 - a1031 於 2005/09/12 13:10:43
|
powmien
初階會員 發表:27 回覆:80 積分:41 註冊:2004-10-20 發送簡訊給我 |
關於您的第一個問題我看不太懂,
至於第二個問題,我想…因為是沒
任何一個tools/compiler會自動得
知您的數值要補滿幾位的吧... 下面是我寫10進制轉而2進制,並
自動補滿3位的小程式... 請參考. 還有,您的程式似乎沒縮排?還是
忘記發文時加上code/code呢?
void __fastcall TForm1::Button1Click(TObject *Sender) { int number,i=0; int max_len=3; char* answer; String x; answer=(char *)malloc(max_len); number=StrToInt(Edit1->Text); i=max_len-1; while(i>=0){ if(number>0){ answer[i]=number%2 48; number/=2; } else{ answer[i]='0'; } i--; } x=AnsiString(answer); Edit2->Text=x; free(answer); }天下英雄出我輩,一入江湖歲月催; 皇圖霸業談笑中,不勝人生一場醉。 發表人 - powmien 於 2005/09/12 16:48:23 |
powmien
初階會員 發表:27 回覆:80 積分:41 註冊:2004-10-20 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |