日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

加密2-华东师范-2020

發布時間:2025/3/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 加密2-华东师范-2020 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

加密2

Time Limit:1000MS Memory Limit:30000KB
Total Submit:145 Accepted:83

Description

對一個整數(32位無符號整數)進行規則如下的加密:
1. 低16位和高16位互換
2. 此時的低16位按位取反
3. 此時的高16位與低16位進行異或運算,結果存儲到高16位

現在根據加密后的整數,求出加密前的整數的16進制形式.

Input

輸入有多case,每個case一行,且只有一個整數

Output

對于每個case輸出一個整數(16進制形式),即加密前的整數。

Sample Input

4294901759

Sample Output

1


hint:十六進制輸出時請使用大寫字母(A,B...)

解題思路:

1、? 必須知道按位異或的特點:異或運算的特點如果 a^b=c,那么就有 c^b = a以及c^a=b此規律可以用來進行最簡單的加密和解密.

2、? 倒著求解即可。

?

程序代碼:

#include<stdio.h>

int main()

{

??? unsigned int n,a,b,i,j,k;

??? while(scanf("%d",&n)!=EOF)

??? {

????? a=n>>16;?????? //交換后的異或高16位

????? b=n<<16;????????????????????????????? // 需要注意的是??? 每次參與運算的只有16位,所以取完數,在移回來。

????? b=b>>16;??????? //交換后的低16位

????? k=a^b;????????? // 交換后的高16位

????? b=~b;??????? // 交換后,按位取反前的 低16位

????? b=b<<16;?????????? // 低 16 位變成高16位

????? n=b+k;????????????? // 相加即可

????? printf("%X\n",n);

??? }

??? return 0;???????????????

}

?

?

轉載于:https://www.cnblogs.com/zhouhongweihpu/p/3230073.html

總結

以上是生活随笔為你收集整理的加密2-华东师范-2020的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。