回覆列表
  • 1 # 使用者6354188383803

    本人在串列埠通訊中就用到這個,講浮點數(不談進位制)轉化為字元型(樓主所謂的16進位制)放入char字元陣列。

    更精確的說應該是將浮點數,以位元組形式放入位元組陣列(不是char陣列哦,因為char是有符號的),用以後續的通訊傳輸(大多數的應用吧)。

    我用的基本方法是union(聯合)

    程式碼如下:

    union UFLOAT

    {

    float f; // 4個位元組浮點型變數

    byte by4[4]; // 位元組陣列,元素為4

    }

    由於用了union,上面定義的變數佔用4位元組的記憶體,也就是說f和by4是共用這4位元組記憶體的。對浮點的轉化變得異常簡單。

    float fNum=100.0; // 待操作的浮點數

    byte byBuf[400]; // 可容納100個轉換後的浮點數的整型陣列

    unsigned int j=0; // 下面用作byBuf的遊標

    UFLOAT uf; // 用以快速轉換的自定義UFLOAT變數

    // ...一些運算

    // 下面這段程式碼將fNum轉成4位元組插入到byBuf中

    uf.f=fNum; // 將要轉換的浮點數放入UFLOAT變數,此時uf.by[]陣列也被賦值了,因為記憶體是共用的

    for (unsigned int i=0;i

    {

    byBuf[j++]=uf.by4[i];

    }

  • 中秋節和大豐收的關聯?
  • 你百看不厭的一部動漫是什麼?