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)”
類似: 純C下無號Byte單一Bit設定與反解哪幾個Bit被設定