線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:811
推到 Plurk!
推到 Facebook!

請問是否記憶體重疊

尚未結案
a1031
一般會員


發表:3
回覆:0
積分:0
註冊:2005-07-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-09-12 13:07:04 IP:163.22.xxx.xxx 未訂閱
大家好 小弟要撰寫一個轉換程式 將輸入的分成兩筆資料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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-09-12 16:44:36 IP:60.248.xxx.xxx 未訂閱
關於您的第一個問題我看不太懂, 至於第二個問題,我想…因為是沒 任何一個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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-09-12 16:51:00 IP:60.248.xxx.xxx 未訂閱
對了,只要修改 max_len 的value .. 就能控制要補幾位。 天下英雄出我輩,一入江湖歲月催; 皇圖霸業談笑中,不勝人生一場醉。
系統時間:2024-05-03 20:51:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!