美文网首页十天学会C语言程序员
C语言day06-08位运算符练习3

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

作者: liyuhong165 | 来源:发表于2016-05-01 00:12 被阅读40次

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

相关文章

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

    pragma mark 位运算符练习3 pragma mark 概念 pragma mark 代码

  • 16_位运算符分析

    关键词: C语言中的位运算符、 左移和右移注意点、位运算防错准则、 位运算符和逻辑运算符的区别 1. C语言中的位...

  • 条件运算符的小启发

    今天做到明解C语言的练习3-8,增进了对条件运算符的认识。 练习要求如下:用条件运算符改写以下代码,实现同样的功能...

  • 「C语言入门到精通」C语言运算符 第02课

    【C语言入门到精通】C语言运算符 第02课 主要内容: 1.赋值运算符,复合算术运算符 2.算术运算符 3.关系运...

  • 嵌入式C语言的位运算

    想必大家都了解&&(且运算符),||(或运算符),在C语言的位运算中 ,位或运算|,位与运算&,异或^,取反~。等...

  • 1213学习总结

    1.类型转化: 2.位运算符 3.赋值操作符 4.逻辑运算符和条件运算符 5.运算符优先级 6.C语言的三大结构

  • 【初识C语言】C语言中的运算符

    C语言中的运算符 1运算符和表达式 C语言运算符是说明特定操作的符号,它是构造C语言表达式的工具。C语言的运算异常...

  • C语言中关于逗号运算符的理解

    在C语言中运算符有很多,包括算数运算符、关系运算符、赋值运算符、位运算符、逻辑运算符、三目运算符、sizeof运算...

  • 关于逗号运算符的理解

    在C语言中运算符有很多,包括算数运算符、关系运算符、赋值运算符、位运算符、逻辑运算符、三目运算符、sizeof运算...

  • C语言:按位运算

    C语言:按位运算 C有这些按位运算的运算符& 按位的与| 按位的或~ 按位取反^ 按位的异或<< ...

网友评论

    本文标题:C语言day06-08位运算符练习3

    本文链接:https://www.haomeiwen.com/subject/wfskrttx.html