1位二进制可以有___2___种编码,编码为_____0,1____________
2位二进制可以有__4____种编码,编码为___00,01,10,11______________
3位二进制可以有___8___种编码,编码为__000,001,010,011,100,101,110,111_______________,即十进位制从___0____到_____7_____
......
N位二进制可以有___2^n___种编码
就是每一位上都可以置0或者置1,而每种不相同的排列都可以算是一种编码
这个帐号有点长啊,1000111001011011110001111000000001000011000011101000011110001001
简单的异或加密,自己不写是损失
==========
#include cstdio
using namespace std;
void binByte(char *bin, unsigned char b){
char i=7;
while(b0){
bin[i]=(b1)+'0';
b=1;
i--;
}
while(i=0){
bin[i--]='0';
}
}
int main()
{
char *src="NCTV";
char bin[9]={0};
unsigned char *p=(unsigned char*)src;
unsigned char pwd=0x59;//1011001
unsigned char code;
while(*p!='\0'){
code=*p^pwd;
binByte(bin,*p);
printf("%c %u %s 加密成 %u ",*p,*p,bin,code);
binByte(bin,code);
printf("%s 解密成",bin);
code^=pwd;
binByte(bin,code);
printf(" %c %u %s",code,code,bin);
printf("\n");
p++;
}
return 0;
}
==============
输出:
N 78 01001110 加密成 23 00010111 解密成 N 78 01001110
C 67 01000011 加密成 26 00011010 解密成 C 67 01000011
T 84 01010100 加密成 13 00001101 解密成 T 84 01010100
V 86 01010110 加密成 15 00001111 解密成 V 86 01010110
========