C语言day06-08位运算符练习3

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;
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容