32位整数转二进制字符串算法

C++ 114514 数字论证器:二进制打表算法解析与 32 位整数限制突破 本文深入解析了C++实现的114514数字论证器,重点介绍了二进制打表算法及其性能优化技巧。通过二进制分解与预计算表设计,实现了高效的数学表达式生成,并探讨了如何突破32位整数限制,扩展至64位处理。文章还提供了工程化扩展思路,包括动态表达式生成和并行计算优化。 阅读详情

只能说这个工具类太常用了,本人经常需要对比两个数字的二进制形式,jdk自带的方法又会把前面为零的那一部分给截掉,不方便比较,所以粘贴此类出来作为备忘


/**
 * 该类是一个将int型整数转成32位二进制字符串形式的工具类
 * Created by lihong10 on 2017/4/28.
 */
public class Int2BinaryStringUtil {


    private final static char[] digits = {'0', '1'};


    /**
     * 将int型整数转成32位的2进制形式
     * @param num
     * @return String
     */
    public static String toFullBinaryString(int num)
    {
        char[] buf = new char[32];
        int pos = 32;
        int mask = 1;
        do
        {
            buf[--pos] = digits[num & mask];
            num >>>= 1;
        }
        while (pos > 0);

        return new String(buf, pos, 32);
    }


    /**
     * 将int型整数转成32位的2进制形式
     * @param num
     * @return String
     */
    public static String toFullBinaryString2(int num)
    {
        char[] chs = new char[Integer.SIZE];
        for (int i = 0; i < Integer.SIZE; i++)
        {
            chs[Integer.SIZE - 1 - i] = (char) ((num >> i & 1) + '0');
        }
        return new String(chs);
    }

    /**
     * 测试
     * @param args
     */
    public static void main(String[] args)
    {
        System.out.println("方法一:" + toFullBinaryString(6053));
        System.out.println("JDK自带: " + Integer.toBinaryString(6053));

        System.out.println("方法一:" + toFullBinaryString(-2));
        System.out.println("JDK自带: " + Integer.toBinaryString(-2));

        System.out.println("------------------------------------------");

        System.out.println("方法二:" + toFullBinaryString2(6053));
        System.out.println("JDK自带: " + Integer.toBinaryString(6053));

        System.out.println("方法二:" + toFullBinaryString2(-2));
        System.out.println("JDK自带: " + Integer.toBinaryString(-2));
    }










}

32位(二进制-十六进制-十进制)转换工具 个人写的一个小程序 用来把32位(二制从选择框钓选确定)转换成十进制、十六进制 写与硬件相关的程序特别需要 立即下载

相关推荐

VS Code+ESP-IDF开发避坑指南:头文件标红报错的5种解决方法(附CMakeLists.txt配置)

本文详细解析了在VS Code中使用ESP-IDF开发ESP32时头文件标红报错的5种解决方法,包括环境配置检查、CMakeLists.txt规范配置、路径解析策略、缓存清理技巧和高级调试手段。特别提供了CMakeLists.txt的实战配置示例,帮助开发者彻底解决头文件路径问题,提升开发效率。

weixin_33670786的博客 560

如何把一个整数转换成二进制

下面介绍一种把键盘输入的整数转换成二进制的方法:程序如下: #include void int2bin1(int num) { int i; for(i = 1; i < 33; i++) { if((unsigned int)(num & 0x80000000) == (unsigned int)(0x80000000)) {

wp1995的博客 2万+

RHCSA Linux环境搭建

安装Linux操作系统一般有三种方式:为了便捷方便高效,因此本人选择通过虚拟机来使用Linux操作系统。先在官网(Download VMware Workstation Pro)下载好VMware workstation pro软件,下载安装完成后,需要激活打开。下载版本不同,所需激活码也不同(激活码可在网络上查找)

weixin_68256171的博客 1421

【数据存储结构】int32的二进制存储形式

1.事情起因 最近刷leetcode遇到了10进制转换2进制相关的问题,当遇到负数的时候发现跟思考的不一样,-1并不是 1000 ... 0001,而是1111 ... 1111,究其原因是负数以补码形式存储在4个byte中,这是与正数存储原码不同的地方,遗忘已久的最底层知识由回来了。 2.int32正数在4个byte中的存储形式 2.1 正数 正数存储是正常的原码形式,也就是num%2的mod结果,0或1,例如数值3的int存储是: 00000000 00000000 00000000 0

plaxbsga的专栏 2956

脑机接口(BCI)从原理到开发实战 01|意念控制真的来了?一文看懂脑机接口的技术革命

类型定义典型应用主动式用户主动产生特定思维模式来控制设备运动想象(想象左手/右手移动)反应式用户被动接受外部刺激,系统检测大脑反应P300拼写器、SSVEP(稳态视觉诱发电位)被动式系统监测用户自发脑状态,不要求主动控制疲劳监测、情绪识别、注意力评估本系列后续文章将重点围绕主动式(运动想象)和反应式(P300/SSVEP)展开实战。脑机接口,这个曾经只存在于科幻中的概念,正在政策、资本、技术的三重驱动下,加速从实验室走向产业落地。2026年,注定是脑机接口发展史上浓墨重彩的一年。

小明的博客 1433

医图论文 Arxiv‘24 | 自我先验引导的 Mamba-UNet 网络在医学图像超分辨率中的应用

作者提出了一种自我先验引导的 Mamba-UNet 网络(简称 SMamba-UNet)用于医学图像超分辨率。现有方法主要基于卷积神经网络(CNNs)或 Transformer。基于 CNN 的方法无法捕捉长距离依赖关系,而基于 Transformer 的方法由于其二阶计算复杂度,面临沉重的计算挑战。最近,状态空间模型(SSMs)尤其是 Mamba 出现了,它能够以线性计算复杂度建模长距离依赖。

小白学视觉 263

给出一个32为有符号的整数,将这个整数每位上的数字进行反转

''' 给出一个32为有符号的整数,将这个整数每位上的数字进行反转 示例1:输入123,输出321 示例2:输入-123,输出-321 示例3:输入120,输出21 ''' #定义函数 def reverse(num): num = str(num) #第一种情况,负数,且末尾为0 if num[0]=="-" and num[-1]=="0": #先从第二个数开始取到倒数第二个数,再将取出的结果进行反转 num = num[1:-1][::-1] ...

sunny_eggg的博客 633

YOLO12涨点改进| 损失函数改进篇 |AAAI 2025| 一种小目标检测SDLoss损失函数,解决现有损失函数对不同目标尺度敏感度不足的局限,提高了网络检测不同尺度目标的敏感能力,助力高效涨点

本文提出了一种改进的小目标检测方法SDLoss,通过动态调整尺度损失与位置损失的权重,优化了YOLOv12模型的性能。针对红外小目标检测中存在的两个主要问题:1)标准卷积难以捕捉目标的高斯空间分布特性;2)现有损失函数对不同尺度目标的敏感度不足,研究团队开发了Pinwheel-shaped卷积(PConv)和Scale-based Dynamic损失函数(SDLoss)。PConv通过不对称卷积核设计显著提升感受野,SDLoss则根据目标大小动态平衡尺度与位置损失的影响。

Ai缝合怪、助力小伙伴高效发论文 238

C语言 输入一个整数,将它在内存中的二进制表示的每一位转换成对应的数字字符并且存放到一个字符数组中,然后输出该整数的二进制表示(32位有符号整数,输出每4位用空格分隔)。

输入一个整数,将它在内存中的二进制表示的每一位转换成对应的数字字符并且存放到一个字符数组中,然后输出该整数的二进制表示(32位有符号整数,输出每4位用空格分隔)。 示例 输入: 1 输出: 0000 0000 0000 0000 0000 0000 0000 0001 //输入一个整数,将它在内存中的二进制表示的每一位转换成对应的数字字符并且存放到一个字符数组中, //然后输出该整数的二进制表示(32位有符号整数,输出每4位用空格分隔)。 #pragma warning(disab..

laocooon的博客 2360

如何卸载Gazebo与重装

gazebo是一款关于车辆和无人机的仿真软件,本文大致介绍它是何物,以及他的安装和卸载方法,对于ROS开发者,本文有一定参考意义。

gongdiwudu的专栏 1万+

YOLO26涨点改进 | 独家创新、损失函数改进篇 | TGRS 2025顶刊 | 带来AIoU小目标涨点损失函数,增强了目标检测中对边界框形状和尺寸的敏感度,适合复杂场景和小物体检测中有效涨点

AIoU损失函数通过自适应形状感知和尺寸敏感加权机制,有效解决了YOLO26原生损失函数在小目标检测中的缺陷。实验结果表明,AIoU损失函数在多个数据集上均取得了显著的性能提升,尤其在小目标检测和多任务场景下表现突出。自适应形状感知,对形状差异较大的目标给予更大惩罚,提高边界框拟合精度尺寸敏感加权,对小目标的宽高比例差异给予更大权重,增强模型对小目标特征的学习能力梯度连续性好,即使在IoU=0时仍能提供有效的梯度更新,解决小目标梯度消失问题。

qq_36130719的博客 160

整数反转:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

Leetcode纪录篇 Day1 问题描述:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。(假设我们的环境只能存储得下 32 位的有符号整数,请根据这个假设,如果反转后整数溢出那么就返回 0。) 问题解析: 因为给出的是一个32位的有符号整数,所以必须考虑反转之后的溢出情况,32位的精度为[-2**31,2**31-1] class Solution: def reverse(self, x: int) -> int: if x >= 0:

weixin_38432968的博客 698

芯片原厂linux驱动开发的分享

大家好,我是XX,来自湖南XX学院,电子信息18级,也曾在创新基地控制组学习过两三年,毕业后就职于一家芯片原厂的解决方案部,担任驱动工程师的职位,算上实习期,我的工作时长已有两年。在此我想将这两年期间学习与积累到的一些经验输出出来,与大家一同分享。知识面有限,只能简单介绍一些驱动开发方向的一些经验,且由于经验尚浅,文中难免会有一些疏漏和错误之处,还请大家积极地批评指正。

嵌入式技术开发 850

leetcode190.颠倒二进制位

1.题目描述 示例 1: 输入: 00000010100101000001111010011100 输出: 00111001011110000010100101000000 解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596, 因此返回 964176192,其二进制表示形式为 0011100101111000...

没有感情的刷题机器 131

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

19北邮计算机院机试

Problem A 二进制 题目描述: 32位二进制数 X ,对其进行X+1,X+3操作,并输出。注意不能忽略前导0。 输入 第一行,一个整数 T ,代表测试数据组数。接着 T 行,输入32为二进制数输出对每组测试数据。 输出 两行,第一行为X+1,第二行为X+3. 测试样例 输入 2 00000000000000000000000000000000 00000000000000...

一字清华的博客 237

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

UVa 740 Baudot Data Communication Code

本题模拟BaudotBaudot码解码过程,核心是处理模式切换码组和按当前模式查表。利用bitset<5>bitset<5>将555位二进制字符串转换为整数索引,简化转换。注意初始状态为下档,且两个特殊码组仅切换状态而不输出字符。消息长度可能不是555的倍数,但题目保证有效,因此直接按每555位处理即可。该算法时间复杂度OLO(L)OL,空间O1O(1)O1,适用于短消息解码。

寂静山林 182

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

咕咕嘎嘎2025

回文串是指正读和反读都相同的字符串,如"aba"、“abba”。计算过程:1/3 - 2/5 + 3/7 = 0.3333 - 0.4 + 0.4286 = 0.3619。这是一个典型的交错数列问题,每一项的分子是递增的自然数,分母是奇数序列(2n+1),符号正负交替。这个程序从输入中读取一系列整数,统计每个数字出现的次数,并找出出现次数最多和最少的数字。这个程序统计一个字符串中各个数字(0-9)出现的次数,并找出出现次数最多的数字。最长回文子串:“bab"或"aba”,长度为3。

Chimera_tu的博客 508

子网掩码有效性验证

摘要:本文详述了验证子网掩码连续性的逻辑与方法。通过将IP格式的掩码字符串分割并转换为32位整数,分析其二进制形式是否满足"连续1后接连续0"的规则。关键步骤包括:取反掩码后加1,再与原取反值按位与运算,结果为0则证明连续性。文中提供了多个测试用例及代码实现,解释有效掩码必须满足n个连续1后接(32-n)个连续0的条件(1≤n≤31)。代码示例展示了完整的验证过程,包括IP格式检查、范围验证和连续性判断。

weixin_53151359的博客 439

Leetcode中字符串与数值关系的题目汇总Python3(一)

字符串转数值 整数反转 二进制数值颠倒 python3

qq_35668469的博客 254

颠倒二进制位

LeetCode 190 颠倒二进制位

weixin_49823868的博客 286

求32位整数的二进制个数_原码反码补码真的烦

我10秒钟做出了正数的1的个数,却秀死在负数。。。

fager漫长路 1928

JZ11:输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。

题目描述 输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。 过程 Java自带转化方法嘻嘻嘻嘻 1、先将数字转换成二进制字符串 2、用String.split()函数存入一个数组中 3、遍历数组跟1比较,同时计数 4、输出计数值 public class Solution { public int NumberOf1(int n) { String bi = Integer.toBinaryString(n); String[] b =

coderge's 优快云 Blog. 1622

(java)二进制中1的个数:输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。

二进制中1的个数 题目:输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。 自己的解法:先把十进制数换成2进制,再把其送到数组中,遍历其每个元素,看等于1 的元素有多少个 public class Solution { public int NumberOf1(int n) { String Bi = Integer.toBinaryString(n); String[] StrBi = Bi.split(""); int a

fjswcjswzy的博客 1288

1.4 将整数的二进制奇偶位互换

Chapter1: 位运算的奇技淫巧 4. 将整数的二进制奇偶位互换 问题 将整数的二进制奇偶位互换 算法 算法1: 用 & 运算分别取出奇偶位的数再交错异或(或用| 运算) 使用位运算 & 分别取出该整数 N 二进制的奇数和偶数位, 将得到奇数位的数向右移一位得到数字 a,将得到的偶数位向左移一位得到数字 b a^b (a|b也可)就是答案 int swap1...

bloger博客 588

剑指offer:输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。

剑指offer算法题 进制转换 补码原码反码 题目描述 输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。 题目分析 解法一 用1与n的每一位相与,所得结果为1则该数位是1,计算完成后将n右移1位。注意这里的右移用>>>,代表无符号右移,若用>>右移对负数计算是会陷入死循环。 解法二 同样是每一位与1相与,这次我们要做的是将1向左移,这样我们不用考虑负数的问题。 最优解 每次计算都是把最右的1计算并清除掉,这样就只剩下其他的1,并且没有新加1。所以和是不是负

gaozhuang63的博客 1931

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

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

weixin_43741253的博客 461
上一篇: 一个地道的状态模式列子(java)
下一篇: java项目中设置 System.getProperty(“XXX”)自定义变量
lhever_
博客等级 码龄14年 213粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值