当前位置: 首页 > article >正文

【Leetcode 每日一题】LCR 190. 加密运算

LCR 190. 加密运算

计算机安全专家正在开发一款高度安全的加密通信软件,需要在进行数据传输时对数据进行加密和解密操作。假定 dataA 和 dataB 分别为随机抽样的两次通信的数据量:

  • 正数为发送量
  • 负数为接受量
  • 0 为数据遗失

请不使用四则运算符的情况下实现一个函数计算两次通信的数据量之和(三种情况均需被统计),以确保在数据传输过程中的高安全性和保密性。

示例 1:

输入:dataA = 5, dataB = -1
输出:4

提示:

  • dataA 和 dataB 均可能是负数或 0
  • 结果不会溢出 32 位整数

思路:

二进制加法器,&表示进位,^表示本位,<<表示左移,共同构成全加器。

十进制例子:13 + 98 = 111

  百 十 个
      1  3
   + 9  8
     ------
      0  1 // 本位
      1  1 // 进位

然后:

      0 1

+ 1 1 0

  --------

   1 1 1

代码:

class Solution {
public:
    int encryptionCalculate(int dataA, int dataB) {
        while(dataB){
            int c = dataA & dataB; //进位,都是1才能进位
            dataA = dataA ^ dataB; //本位,相同则为0,不同则为1
            dataB = (unsigned)c << 1;
        }
        return dataA;
    }
};


http://www.kler.cn/a/421875.html

相关文章:

  • 3D姿势和跟踪的人体行为识别
  • Linux条件变量线程池详解
  • 网络安全漏洞原理利用与渗透
  • 类和对象下
  • Kubernetes 01
  • pytorch中model.eval的理解
  • c语言几道易错题
  • HBase运维需要掌握的技能:监控与日志管理(5)
  • 如何在虚拟机中安装python 和 jupyter,并且启动运行Delta Lake,以及解决一下启动过程中出现的错误(保姆级教程)
  • AllegroHand 四指灵巧手:机器人领域的创新力量
  • HTML5系列(2)--表单增强与验证
  • C语言——自我介绍_Gitee的基本使用
  • 《智能体雏形开发(高阶实操)》开发计划概述
  • 力扣第 73 题 矩阵置零
  • Linux C/C++编程中的多线程编程基本概念
  • C++ 【PCL】点云配准
  • 157. 缓动算法.easing(地球渐入相机动画)
  • 根据YAML文件创建Conda环境
  • Python库—MXNet:高性能深度学习框架的探索与实践
  • 【机器学习】机器学习的基本分类-监督学习-逻辑回归-Sigmoid 函数