读书人

16进制怎么转换成2进制并以字符串形

发布时间: 2012-03-08 13:30:13 作者: rapoo

16进制如何转换成2进制,并以字符串形式保存2进制数?
如题,看这个:

C/C++ code
unsigned char[] = {    /* 65 0x41 'A' */    0x38, /* 00111000 */    0x6c, /* 01101100 */    0xc6, /* 11000110 */    0xfe, /* 11111110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x00  /* 00000000 */    };

如何转换成右边注释中的字符串?字符串中保存着该16进制数的2进制数。

[解决办法]
占位学本领啊
[解决办法]
itoa
[解决办法]
C/C++ code
#include <stdio.h>#include <stdlib.h>unsigned char h[] = {    /* 65 0x41 'A' */    0x38, /* 00111000 */    0x6c, /* 01101100 */    0xc6, /* 11000110 */    0xfe, /* 11111110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x00  /* 00000000 */    };char b[8][9];char s[9];int i;void main() {    for (i=0;i<8;i++) {        sprintf(b[i],"%08s",ltoa(h[i],s,2));    }    for (i=0;i<8;i++) {        printf("%s\n",b[i]);    }}//00111000//01101100//11000110//11111110//11000110//11000110//11000110//00000000
[解决办法]
计算机只认识二进制... 你所说的16进制是主观意念...
[解决办法]
学习了
探讨
C/C++ code
#include <stdio.h>
#include <stdlib.h>
unsigned char h[] = {
/* 65 0x41 'A' */
0x38, /* 00111000 */
0x6c, /* 01101100 */
0xc6, /* 11000110 */
0xfe, /* 11111110 *……

[解决办法]

赵老师威武...
[解决办法]
写个转换函数也是可行的啊。
[解决办法]
探讨
引用:

C/C++ code
#include <stdio.h>
#include <stdlib.h>
unsigned char h[] = {
/* 65 0x41 'A' */
0x38, /* 00111000 */
0x6c, /* 01101100 */
0xc6, /* 11000110 */
0xfe, /* 111……

[解决办法]
C/C++ code
#include <stdio.h>unsigned char h[] = {    /* 65 0x41 'A' */    0x38, /* 00111000 */    0x6c, /* 01101100 */    0xc6, /* 11000110 */    0xfe, /* 11111110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x00  /* 00000000 */    };char b[8][9];char s[9];int i,j;void main() {    for (i=0;i<8;i++) {        for (j=0;j<8;j++) {            b[i][8-j]=(h[i]&(1<<j))?'1':'0';        }        b[i][8]=0;    }    for (i=0;i<8;i++) {        printf("%s\n",b[i]);    }}//00111000//01101100//11000110//11111110//11000110//11000110//11000110//00000000
[解决办法]
纠正上帖:
b[i][8-j]=(h[i]&(1<<j))?'1':'0';
应改为
b[i][7-j]=(h[i]&(1<<j))?'1':'0';

[解决办法]
char s[9];删掉

读书人网 >C语言

热点推荐