基于byte
Java 中的类型是带符号的8位
二进制补码整数这一事实,为什么第二种声明字节的方法不起作用?
byte ok = -128;
byte notok = 0b10000000;
我的理解是1000000
应该是,-128
但是java表示notok
上面的变量应该是an int
而不是abyte
0b10000000
是等于的int
文字(= 0b00000000000000000000000010000000
)+128
。byte
持有8位,不能代表+128
。但是,您可以按照以下步骤实现:
byte notok = (byte) 0b10000000;
问题内容: 我有一个带有二进制数据的字符串(1110100),我想取出文本以便可以打印它(1110100将打印“ t”)。我尝试了这一点,它类似于我用来将文本转换为二进制的东西,但是根本不起作用: 任何更正或建议将不胜感激。 问题答案: 你可以使用基数2(二进制)将二进制字符串转换为整数: 然后,如果你希望将相应的字符作为字符串:
问题内容: 是否有任何特殊原因为什么不包括这种文字,而允许使用十六进制和八进制格式? 问题答案: Java 7包括它。检查新功能。 例:
问题内容: 我想用二进制文字声明我的整数。Java可能吗? 问题答案: 从Java 7开始,您可以使用(或)形式将整数直接表示 为二进制数字 ,后跟一个或多个二进制数字(0或1)。例如,是整数42。与八进制和十六进制数字一样,二进制文字可能表示负数。 如果您没有Java 7,请使用以下命令: 还有其他输入整数的方法: 如十进制数字,。负十进制数,例如实际上是由一元否定运算的整数文字组成的表达式。
问题内容: 我正在尝试编写将数字转换为二进制的代码,这就是我写的。它给了我一些我不理解的Eclipse错误。怎么了 还有其他建议吗?我想学习并听取任何修复建议。谢谢。 错误消息: 类型中的方法不适用于参数() 这行有多个标记 令牌“ ”的语法错误,;; 预期 令牌“ ”的语法错误,;; 预期 是变量的无效类型 这行有多个标记 令牌“ mod”的语法错误,无效的AssignmentOperator
问题内容: 我希望能够将字符串(带有单词/字母)转换为其他形式,例如二进制。我将如何去做。我正在使用BLUEJ(Java)进行编码。谢谢 问题答案: 通常的方法是用于获取基础字节,然后以其他某种形式(十六进制,二进制形式)呈现这些字节。 请注意,它使用默认字符集,因此,如果要将字符串转换为某些特定的字符编码,则应改用它,但是很多次(尤其是在处理ASCII时)就足够了(并且具有不抛出检查异常的优点)
问题内容: 请告诉我最好/最快的方法: 1)将很小的二进制文件加载到内存中。例如图标; 2)加载/读取大小为512Mb +的非常大的二进制文件。也许我必须使用内存映射的IO? 3)当您不想考虑大小/速度而只能做的事情时,通常选择:将所有字节读入内存? 谢谢!!! 问题答案: 对于内存映射文件,java有一个nio包:Memory Mapped Files 检出小文件的字节流类:字节流 检出较大文件