Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将7字节整数值写入包含15位数字的DataOutputStream?_Java_Integer_Byte_Dataoutputstream - Fatal编程技术网

Java 如何将7字节整数值写入包含15位数字的DataOutputStream?

Java 如何将7字节整数值写入包含15位数字的DataOutputStream?,java,integer,byte,dataoutputstream,Java,Integer,Byte,Dataoutputstream,我必须将7字节的整数值写入DataOutputStream,这个整数包含15位数字。我该怎么做呢?7字节=56位 这意味着您最多可以表示2^56的数字,这对于15位长的数字来说是非常必要的 只需将数字转换为二进制,并将其存储在发送的7个字节中。7字节=56位,您可以使用long来存储15位整数 并将其转换为字节: long val = ... byte [] b = new byte[7]; for(int i=0;i<7;i++){ b[7 - i] = (byte)(v

我必须将7字节的整数值写入DataOutputStream,这个整数包含15位数字。我该怎么做呢?

7字节=56位
这意味着您最多可以表示2^56的数字,这对于15位长的数字来说是非常必要的


只需将数字转换为二进制,并将其存储在发送的7个字节中。

7字节=56位,您可以使用long来存储15位整数

并将其转换为字节:

long val = ...
byte [] b = new byte[7];  
for(int i=0;i<7;i++){  
    b[7 - i] = (byte)(val >>> (i * 8));  
}  
long val=。。。
字节[]b=新字节[7];
对于(int i=0;i>>(i*8));
}  

/手写,可能会将某事物与索引或移位混在一起/

以什么为基数?二元的?十进制的八进制?十六进制?Base64?压缩小数?分区十进制?如何在Java中获得7字节整数值?@EJP十进制。基本上,我必须发送一个包含15位数字的值,它必须是7字节value@Gonzo它必须是压缩十进制:每个字节两位数。你得先理清你的要求。然后,如果是压缩十进制,您必须告诉我们您使用的是哪种压缩十进制格式:无符号、符号前导、符号尾随。然后告诉我们这个值目前在Java代码中是如何表示的。转换为long并截断高位字节。如果需要显示字符,则在转换为long first之后,需要类似Base64的内容。@Gonzo正如您所标记的,这个答案是正确的,十进制基数根本不能是一个要求,与您上面令人困惑的回答相反。