用户输入一个8个字符的字符串,然后将其转换为字符串并放入要播放的数组中。
有了这8位数字,我希望能够将它们转换为32位二进制文件,例如
整数=12345678
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位(可能更有效)。像这样
我怎样才能允许所有的整数都显示在一个32位的字符串中,并且接受负数(我可以使用两个补码的取反运算)?
真棒参考;http://www.cs.cornell.edu/~tomf/notes/cps104/twoscomp.html
对于整数,可以使用以下技巧:
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) 我不擅长解释,所以希望上面的例子足以告诉你我想要什么。