当前位置: 首页 > 知识库问答 >
问题:

将 int 转换为包含额外内容的 32 位二进制行

端木乐语
2023-03-14

用户输入一个8个字符的字符串,然后将其转换为字符串并放入要播放的数组中。

有了这8位数字,我希望能够将它们转换为32位二进制文件,例如

  • 0000 0000 0000 0000 000 0000 0000 0000

整数=12345678

    < Li > 0000 0000 1011 1100 0110 0001 0100 1110

int =-1000万

>

  • 1111 1111 0110 0111 0110 1001 1000 0000

     System.out.print("Please enter an 8 digit number");
     System.out.println();
     Scanner user_input = new Scanner( System.in );
     StudentID = user_input.nextLine();
     sID = Integer.parseInt(StudentID);
     String ss[] = StudentID.split("");
     StudentID = Integer.toBinaryString(sID);   
    
        while(loop >= 0){
          d[loop] = Integer.parseInt(ss[loop]) ;
          loop--;
        }
    

    我尝试过使用“学生ID=Integer.toBinaryString(sID);”但是它不会产生加法0来组成32位(可能更有效)。像这样

    • 1011110001100010101110

    我怎样才能允许所有的整数都显示在一个32位的字符串中,并且接受负数(我可以使用两个补码的取反运算)?

    真棒参考;http://www.cs.cornell.edu/~tomf/notes/cps104/twoscomp.html

  • 共有1个答案

    孙永思
    2023-03-14

    对于整数,可以使用以下技巧:

    String result = Long.toBinaryString( sID & 0xffffffffL | 0x100000000L ).substring(1);
    

    这将整数放在一个long中,在其左侧添加一位,这意味着toBinaryString将有33位,然后取右侧的32位(删除添加的额外1)。

    爪哇 8 版本:

    String result = Long.toBinaryString( Integer.toUnsignedLong(sID) | 0x100000000L ).substring(1);
    
     类似资料:
    • 我有一个包含一些二进制值的整数列表 打印时的列表如下: 我如何将列表分解为8位并将那8位转换为十六进制?

    • 问题内容: 我有一个二进制字符串,如下所示: 我希望我的INT的值是代替 实现此目标的最佳方法是什么? 问题答案: 使用Where 是您的方案无法表示的最小正数。(在这种情况下为8,因为为7且为负。) 大于,所以你减去的,给。

    • 问题内容: 我有以下示例(链接到ideone)。 它引发异常: 但是为什么不让我直接将该数字转换为字符串呢?我可以将数字转换为整数,而不是转换为double。但是还有其他方法吗? 问题答案: 该值是无效的long值。您可以先解析double值:

    • 问题内容: 是否有任何固定的Python方法将Python中的Integer(或Long)转换为二进制字符串? Google上有无数的dec2bin()函数…但是我希望可以使用内置函数/库。 问题答案: Python的字符串格式方法可以采用格式规范。

    • 我正在尝试将数字从十进制值转换为其IEEE 752形式。例如: 我写了这个方法: 有个问题我解决不了,我再举个例子说清楚。 但是当数字为负数时,例如 我收到以下错误: 这意味着我的代码可以完美地处理正数(包括零),但如果是负数,代码就会崩溃。问题出在哪里? 笔记 我想我可以用这种方式解决我的问题 检查是否有一个字符At(0)等于1 如果是(numero.charAt(0)==1),则删除第一个字符

    • 我如何将一个写为二进制的字符串转换为二进制(字节数组)? 如果我有一个字符串: 下面是当我将二进制设置为字节数组时发生的情况(字节数组返回48,这是ASCII) 我不擅长解释,所以希望上面的例子足以告诉你我想要什么。