JAVA/C#/C/C++ 整數(x32 int) 互轉 位元組/位元(byte/bit)

JAVA/C#/C/C++ 整數(x32 int) 互轉 位元組/位元(byte/bit)

JAVA/C#/C/C++ 整數(x32 int) 互轉 位元組/位元(byte/bit)


單晶片節省記憶體儲存資料應用技巧


Code:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i,j,Q,R,v;
    v=1;
    int intbuf[]={1,2,3,4,5,6,7,8,9,10,13,14,15,16};
    char bytrbuf[2]={0x00};
    for(i=0;i<sizeof(intbuf)/sizeof(int);i++)
    {
        Q = intbuf[i]/8;
        R = intbuf[i]%8;
        if(R!=0)
        {
           bytrbuf[Q] |= v<<(R-1);
        }
        else
        {
           bytrbuf[Q-1]  |= v<<7;
        }
    }
    printf("%X %X\n",bytrbuf[1],bytrbuf[0]);

    for(i=0;i<sizeof(bytrbuf)/sizeof(char);i++)
    {
        for(j=0;j<8;j++)
        {
            if( bytrbuf[i]&(v<<j))
            {
                if(i==0)
                {
                    Q=(1+j);
                }
                else
                {
                    Q=(8*i)+(1+j);
                }

                printf("%d ",Q);
            }
        }
    }
    return 0;
}

One thought on “JAVA/C#/C/C++ 整數(x32 int) 互轉 位元組/位元(byte/bit)

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *