我正在寻找Java中的内存流实现.应该在.NET内存流(*)实现之后大致建模实现.
基本上我想有一个MemoryStream必须工厂方法的类:
class MemoryStream {
MemoryInput createInput();
MemoryOutput createOutput();
}
class MemoryInput extends InputStream {
long position();
void seek(long pos);
}
class MemoryOutput extends OutputStream {
long position();
void seek(long pos);
}
Run Code Online (Sandbox Code Playgroud)
因此,一旦我有一个类的实例,MemoryStream我应该能够同时创建输入和输出流,这也应该允许在任何方向上定位.内存流不必是圆形的,它应该适用于小尺寸并自动生长.内存流只需要限制在一个进程中.
任何开箱即用的代码?
(*).NET内存流
http://msdn.microsoft.com/en-us/library/system.io.memorystream.aspx
我想显示浮点数的二进制(或十六进制)表示.我知道如何手动转换(使用此处的方法),但我有兴趣看到相同的代码示例.
虽然我对C++和Java解决方案特别感兴趣,但我想知道是否有任何语言使它变得特别容易,所以我使这种语言不可知.我很想看到其他语言的解决方案.
编辑:我已经很好地覆盖了C,C++,C#和Java.是否有任何想要添加到列表中的替代语言专家?
我试图使用Java从用户的输入转换十进制到二进制数.
我收到了错误.
package reversedBinary;
import java.util.Scanner;
public class ReversedBinary {
public static void main(String[] args) {
int number;
Scanner in = new Scanner(System.in);
System.out.println("Enter a positive integer");
number=in.nextInt();
if (number <0)
System.out.println("Error: Not a positive integer");
else {
System.out.print("Convert to binary is:");
System.out.print(binaryform(number));
}
}
private static Object binaryform(int number) {
int remainder;
if (number <=1) {
System.out.print(number);
}
remainder= number %2;
binaryform(number >>1);
System.out.print(remainder);
{
return null;
} } }
Run Code Online (Sandbox Code Playgroud)
如何在Java中将十进制转换为二进制?
基本上我在Scala中定义了一个Double,我希望它以二进制表示形式.例如:
val myDouble: Double = 0
val myDoubleAs64BitString = "00000000"+
"00000000"+
"00000000"+
"00000000"+
"00000000"+
"00000000"+
"00000000"+
"00000000"
Run Code Online (Sandbox Code Playgroud)
这可能听起来很疯狂,但基本上我正在做的事情并非如此.我基本上是在编写一个Chess应用程序,我需要一种在测试位板表示时获得反馈的好方法.
我想创建浮点数的二进制表示形式,并能够在需要时解析该数字。我所说的“二进制表示”并不是指“ 0.00101”,而是类似“ 101000101”的东西,也就是说,由0s 和1s 组成的序列,没有小数点分隔符。我需要一种方法来在Stringfor a中创建此类表示double并解析 adouble的 a String。请不要提及 XY 问题,因为我确实需要此方法(类似于“无符号二进制值”)。
先感谢您。
将双精度转换为二进制表示形式?double似乎解决了解析到的问题String,但我仍然需要帮助做相反的事情:从二进制到double.