EOJ 2019 加密1 && EOJ 2020 加密2

本文介绍了两道加密题目,分别是EOJ 2019年的加密1和2020年的加密2。加密1涉及整数的16位位操作,包括互换、取反和异或。加密2则要求根据加密后的整数还原原始的16进制形式。解决这些问题需要对位运算有深入理解,如算术移位和逻辑移位的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目简介


  1. 加密1:
    对一个整数 (32 位无符号整数) 进行规则如下的加密:
    低 16 位和高 16 位互换
    此时的低 16 位按位取反
    此时的高 16 位与低 16 位进行异或运算,结果存储到高 16 位
    写出一个程序对指定的整数进行加密。
  2. 加密2:
    对一个整数 (32 位无符号整数) 进行规则如下的加密:
    低 16 位和高 16 位互换
    此时的低 16 位按位取反
    此时的高 16 位与低 16 位进行异或运算,结果存储到高 16 位
    现在根据加密后的整数,求出加密前的整数的 16 进制形式。

说明


第一题按题目方法模拟即可。不熟悉位运算写起来就感觉很吃力。

#include <stdio.h>
unsigned int encrypt(unsigned int number)
{
        unsigned short high16, low16;
        unsigned int value = 0;
        low16 = (
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值