二进制转8位的字符串。 #include <iostream> using namespace std; int b2c(const unsigned char c, char* szStr) { int i; for (i=0;i<8;++i) { unsigned char r = c; r= r << i; r= r >> 7; if (r == 0x01) szStr[i] = '1'; else szStr[i] = '0'; } return 0; } int c2b(const char* szStr, unsigned char* c) { int i; unsigned char r= 0x00;; for (i=0;i<8;++i) { if (szStr[i] == '1') { r += 0x01; } if (i != 7) r = r << 1; } *c = r; return 0; } int main() { unsigned char c = 0x08; char szStr[8+1] = { 0x00 }; b2c(c, szStr); cout << szStr << endl; cout << "=========" << endl; unsigned char x = 0; c2b(szStr, &x); cout << hex << (int)x << endl; const char* p="00000101"; x = 0; c2b(p, &x); cout << hex << (int)x << endl; return 0; }