C语言位操作

    技术2022-06-23  35

    #include <stdio.h> #include <stdlib.h> //len个字节,返回begin到end 位的值 char* bitstream(void *s,int len ,int begin, int end) { char *t,*p; int i,j,k=0; p=(char *)s; t=(char*)calloc(len*8+1,sizeof(char));//长度 (end-begin+1) for(j=0;j <len;j++) //不必计算所有,只须计算end-begin个 for(i=8*sizeof(char);i>0;i--,t[k++]=((p[j]>>i)&1)+'0'); puts(t); *(t+end)=0; return t+begin-1; } int main(void) { unsigned char s[]="ABCD"; puts(bitstream(s,4,1,8));//4个字节,取其中第一到第八位 getchar(); return 0; }  

     

     


    最新回复(0)