.
void *memcpy( void *dest, const void *src, unsigned char count )
{
// ASSERT((dest != NULL)&&(src != NULL));
unsigned char *temp_dest = (unsigned char *)dest;
unsigned char *temp_src = (unsigned char *)src;
while(count--) // 不对是否存在重叠区域进行判断
{
*temp_dest++ = *temp_src++;
}
return dest;
}
unsigned char *memset(unsigned char *dst,unsigned char value,unsigned char count)
{
unsigned char *start = dst;
while (count--)
*dst++ = value;
return(start);
}
// 初始置换表 IP
unsigned char IP_Table[64] = { 57,49,41,33,25,17,9,1,
59,51,43,35,27,19,11,3,
61,53,45,37,29,21,13,5,
63,55,47,39,31,23,15,7,
56,48,40,32,24,16,8,0,
58,50,42,34,26,18,10,2,
60,52,44,36,28,20,12,4,
62,54,46,38,30,22,14,6};
//逆初始置换表 IP^-1
unsigned char IP_1_Table[64] = {39,7,47,15,55,23,63,31,
38,6,46,14,54,22,62,30,
37,5,45,13,53,21,61,29,
..
.
36,4,44,12,52,20,60,28,
35,3,43,11,51,19,59,27,
34,2,42,10,50,18,58,26,
33,1,41,9,49,17,57,25,
32,0,40,8,48,16,56,24};
//扩充置换表 E
unsigned char E_Table[48] = {31, 0, 1, 2, 3, 4,
3, 4, 5, 6, 7, 8,
7, 8,9,10,11,12,