读书人

:关于一个数据新排组合的算法有关问题

发布时间: 2012-04-17 15:06:33 作者: rapoo

请教高手:关于一个数据新排组合的算法问题
比如 现在有个char型数据0x8e(例),将它的每一位分别保存到另外的8个char类型数据的第0位
1111 111X(1)
1010 101X(0)
1111 111X(0)
1010 101X(0)

1111 111X(1)
1010 101X(1)
1111 111X(1)
1010 101X(0)
这是这8个数据 其中X表示分别来自于0x8e





[解决办法]
大概讲一下算法:

C/C++ code
//定义常量const unsigned char C = 0x80;const unsigned char SET1 = 0x01;const unsigned char SET0 = 0xfe;unsigned char src = 0x8e;unsigned char arr[8] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'};for (i = 0; i < 8; i++){    // 做按位与运算    if ((src & C) == 0)    {        // i的最高位为0        a[i] = a[i] & SET0;    }    else    {        // i的最高位为1        a[i] = a[i] | SET1;    }    // src左移一位    src<<1;} 

读书人网 >C语言

热点推荐