首页 > 编程语言 >10.21算法

10.21算法

时间:2023-10-21 11:02:15浏览次数:32  
标签:10.21 符号 二进制 示例 整数 二进制位 算法 输入

颠倒二进制位
颠倒给定的 32 位无符号整数的二进制位。

提示:

请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。
在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在 示例 2 中,输入表示有符号整数 -3,输出表示有符号整数 -1073741825。
 

示例 1:

输入:n = 00000010100101000001111010011100
输出:964176192 (00111001011110000010100101000000)
解释:输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596,
因此返回 964176192,其二进制表示形式为 00111001011110000010100101000000。
示例 2:

输入:n = 11111111111111111111111111111101
输出:3221225471 (10111111111111111111111111111111)
解释:输入的二进制串 11111111111111111111111111111101 表示无符号整数 4294967293,
  因此返回 3221225471 其二进制表示形式为 10111111111111111111111111111111 。
 

提示:

输入是一个长度为 32 的二进制字符串
 

进阶: 如果多次调用这个函数,你将如何优化你的算法?

class Solution { public:     uint32_t reverseBits(uint32_t n) {             uint32_t res=0;     int shiftAmount = 31;     while(n != 0){         res |= (n&1) << shiftAmount;         shiftAmount--;         n >>= 1;     }     return res;     } };   关键: |=保存其他值, <<指定位数只修改这一位的二进制位

标签:10.21,符号,二进制,示例,整数,二进制位,算法,输入
From: https://www.cnblogs.com/minipython-wldx/p/17778616.html

相关文章

  • 常见密码学算法简介
    1.常见对称加解密算法对称加密算法是一种加密算法,使用相同的密钥来加密和解密数据。这些算法在保护数据安全性方面起着重要作用。下面是一些常用的对称加密算法的介绍:1.1AdvancedEncryptionStandard(AES)简介:AES是一种高级加密标准,用于保护敏感数据。它使用128、192或......
  • 智慧矿山AI算法极速解决皮带问题!
    近年来,随着智能技术的迅速发展与应用,智慧矿山逐渐成为提高生产能力和安全性的重要手段。其中,皮带运输系统作为矿山生产过程中的关键环节,其运行状态的准确判定和及时预警对矿山的安全和效率至关重要。为了实现对皮带运行状态的准确识别,智慧矿山AI算法应运而生。为什么需要皮带运行状......
  • 文心一言 VS 讯飞星火 VS chatgpt (117)-- 算法导论10.3 2题
    二、用go语言,对一组同构对象用单数组表示法实现,写出过程ALLOCATE-OBJECT和FREE-OBJECT。文心一言:在Go语言中,我们通常使用指针和结构体来表示和操作复杂的数据结构。对于一组同构对象,我们可以使用一个数组来存储它们的指针,每个指针指向一个对象。下面是使用Go语言实现ALLOCATE-OBJEC......
  • 文心一言 VS 讯飞星火 VS chatgpt (117)-- 算法导论10.3 2题
    二、用go语言,对一组同构对象用单数组表示法实现,写出过程ALLOCATE-OBJECT和FREE-OBJECT。文心一言:在Go语言中,我们通常使用指针和结构体来表示和操作复杂的数据结构。对于一组同构对象,我们可以使用一个数组来存储它们的指针,每个指针指向一个对象。下面是使用Go语言实现ALLOCATE-OB......
  • 快速排序算法模板+内置函数
    思想:确定分界点调整区间,小于分界点的在左边区间,大于分界点在右边区间。递归处理左右两边。voidquick_sort(intq[],intl,intr){if(l>=r)return;inti=l-1,j=r+1,x=q[l+r>>1];while(i<j){doi++;while(q[i......
  • 算法学习笔记(31): 李超线段树
    李超线段树是一种按照值域维护一次函数最值的数据结构,其核心在于一次函数和值域的双单调性。如果预先对于值域离散也可以维护其最值。也就是说只要满足时一次函数,以及下标的单调性都可以利用李超线段树维护。李超线段树就是利用线段树来维护一次函数的最值,每一个结点对应了一......
  • 查找算法
    顺序查找(线性查找)思想:根据列表下标的顺序,一步步查找列表中的元素是否有与需查找元素相对应,有则返回下标。代码实现#顺序查找deflinear_search(li,e):forind,valinenumerate(li):ifval==e:returnindelse:returnNoneli=......
  • Winform中加密时提示此实现不是Windows平台FIPS验证的加密算法的一部分
    场景Java与Winform进行AES加解密数据传输的工具类与对应关系和示例:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/129357081winform中使用如上进行加密时提示:实现不是Windows平台FIPS验证的加密算法的一部分 注:博客:https://blog.csdn.net/badao_liumang_q......
  • 三种基本排序算法:桶排序,冒泡排序,快速排序
    第一节桶排序(最快最简单的排序)1、概括就实现申请大小为的数组为例,inta[11]。首先将所有变量初始化为0,表示还没有出现过任何数字。下面开始处理得到的数字:若存入的第一个数字是5,就将相对应的a[5]的值在原来的基础上增加1.即将a[5]的值从0改为1,表示5出现过一次。若第二个......
  • 排序算法总结
    lowB三人组冒泡排序思想:列表相邻元素两两对比,每趟结束都会产生一个最大/最小元素代码实现defbubble_sort(li):foriinrange(0,len(li)-1):#趟数exchange=0#设置一个标识符,当有一趟无变化时,列表已有序,停止排序forjinrange(0,len(......