全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1892
推到 Plurk!
推到 Facebook!

binary

尚未結案
chinlin0410
一般會員


發表:3
回覆:1
積分:0
註冊:2003-10-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-04 18:00:46 IP:203.67.xxx.xxx 未訂閱
請問一下 如果有個 int k 如何把 k 轉換為binary 也就是0101的形式... 謝謝
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-04 18:14:43 IP:140.135.xxx.xxx 未訂閱
chinlin0410您好:   請參考下面連結的精采範例   http://delphi.ktop.com.tw/topic.php?topic_id=30378 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
chinlin0410
一般會員


發表:3
回覆:1
積分:0
註冊:2003-10-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-04 18:23:58 IP:203.67.xxx.xxx 未訂閱
sorry 我想問的是 假如我有個十進位的值k 如何將k換成二進位 ex:8-->1000 thank's 新手中的新手
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-04 18:35:46 IP:140.135.xxx.xxx 未訂閱
chinlin0410您好:  試試下面的code
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 struct Byte2Bit
 {
  union
  {
   byte data;
   struct
   {
    unsigned int b0 : 1; // low bit
    unsigned int b1 : 1;
    unsigned int b2 : 1;
    unsigned int b3 : 1;
    unsigned int b4 : 1;
    unsigned int b5 : 1;
    unsigned int b6 : 1;
    unsigned int b7 : 1; // high bit
   };
  };
 };
 byte no = 8;
 Byte2Bit Input;
 Input.data = no;
 ShowMessage(IntToStr(Input.b7) IntToStr(Input.b6) IntToStr(Input.b5) IntToStr(Input.b4) 
             IntToStr(Input.b3) IntToStr(Input.b2) IntToStr(Input.b1) IntToStr(Input.b0));
}
順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~

中階會員


發表:36
回覆:142
積分:70
註冊:2003-07-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-05 15:12:38 IP:163.23.xxx.xxx 未訂閱
chinlin0410 您好:    試試以下的 code,我測試過了
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int n,temp,a[100];
temp = StrToInt(Edit1->Text);    for (n=0 ; temp>0 ; n  )
  {
    a[n] = temp % 2 ;
    temp = temp / 2 ;
  }    for (int i=n-1 ; i>=0 ; i--)
Edit2->Text = Edit2->Text   a[i] ;    }
 
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-10-05 21:23:10 IP:61.221.xxx.xxx 未訂閱
引言: 請問一下 如果有個 int k 如何把 k 轉換為binary 也就是0101的形式... 謝謝
chinlin0410 你好:
(1)如果想要自己寫這樣子的功能的話,最好要先知道以下一些基本的概念:
   (a)在 Visual C  /C   Builder 裡面,int 所佔記憶體空間的預設值都是
      4 個 Bytes
   (b)而變數在記憶體中存放的方式,請先參考以下這篇文章中的說明
      http://delphi.ktop.com.tw/topic.php?TOPIC_ID=29224
   (c)也就是說,假設你有一個整數的十進位數值為 439041101,十六進位數值
      為 0x1A2B3C4D 的話,放在記憶體裡面每一個 BYTE 的順序應該為
      4D 3C 2B 1A (Little Endian)
(2)如果已經有了以上的概念的話,相信把程式碼寫出來應該不是什麼難事< >
   請參考以下的範例程式碼< >
AnsiString ByteToBits(BYTE bSrc);
AnsiString IntToBits(int iSrc);
AnsiString ByteToBits(BYTE bSrc)
{
   AnsiString szRet;
   for(int i=0; i<8; i  )
   {
      szRet =((bSrc & (0x80 >> i))? "1": "0");
   }
   return szRet;
}
AnsiString IntToBits(int iSrc)
{
   AnsiString szRet;
   BYTE *bSrc=NULL;
   for(int i=0; i    -- Enjoy Researching & Developing --
        
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
系統時間:2024-05-18 18:03:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!