pragma mark 位运算符练习3
pragma mark 概念
pragma mark 代码
#include <stdio.h>
int main()
{
#pragma mark 要求交换两个变量的值
int a = 10;
int b = 5;
printf("交换前:a = %i,b = %i \n",a,b);
// 第一种方式
#pragma mark 第1种方式 利用第三方变量
/*
int temp = a;
a = b;
b = temp;
printf("交换后:a = %i,b = %i \n",a,b);
*/
#pragma mark 第2种方式 利用算术运算
// 第二种方式
/*
a = a + b; // a == 15
b = a - b; // b == 10
a = a - b; // a == 5
printf("交换后:a = %i,b = %i \n",a,b);
*/
#pragma mark 第3种方式 利用异或
a = a ^ b;
/*
0000 0000 0000 0000 0000 0000 0000 1010
^0000 0000 0000 0000 0000 0000 0000 0101
----------------------------------------
0000 0000 0000 0000 0000 0000 0000 1111
*/
b = a ^ b; // b = a ^ b ^ b = a;
/*
0000 0000 0000 0000 0000 0000 0000 1111
^0000 0000 0000 0000 0000 0000 0000 0101
----------------------------------------
0000 0000 0000 0000 0000 0000 0000 1010 = 10;
*/
a = a ^ b; // a = a ^ a ^ b = b;
/*
0000 0000 0000 0000 0000 0000 0000 1111
^0000 0000 0000 0000 0000 0000 0000 1010
----------------------------------------
^0000 0000 0000 0000 0000 0000 0000 0101 == 5;
*/
printf("交换后:a = %i,b = %i \n",a,b);
b = a ^ b;
a = a ^ b; // a == a ^ a ^ b == b
b = a ^ b; // b == a ^ b ^ b == a
printf("交换后:a = %i,b = %i \n",a,b);
#pragma mark 做一个简单的加密(之后用的可能是:dsc,md5,xe);
// 用户密码,纯数组
int pwd = 123456789;
// 对用户密码进行简单加密
int result = pwd ^ 998;
printf("加密后:%d\n",result);
// 对用户密码进行解密
result = result ^ 998;
printf("解密后:%d\n",result);
return 0;
}