69,373
社区成员
发帖
与我相关
我的任务
分享
int char_to_int(unsigned char *dat){
int datt=0,i;
for(i=0;i<8;i++){
if (dat[7-i] != '0')
datt += 1<<i;
}
return datt;
}
#include <stdio.h>
int char_to_int(const unsigned char *buf)
{
int n;
n = 0;
n += *(buf++) == '1'? 0x80 : 0;
n += *(buf++) == '1'? 0x40 : 0;
n += *(buf++) == '1'? 0x20 : 0;
n += *(buf++) == '1'? 0x10 : 0;
n += *(buf++) == '1'? 0x08 : 0;
n += *(buf++) == '1'? 0x04 : 0;
n += *(buf++) == '1'? 0x02 : 0;
n += *(buf++) == '1'? 0x01 : 0;
return n;
}
int
main(int argc, char *argv[])
{
printf("%d\n", char_to_int("11111111"));
printf("%d\n", char_to_int("00001111"));
printf("%d\n", char_to_int("00000000"));
return 0;
}