Java 如何将7字节整数值写入包含15位数字的DataOutputStream?
我必须将7字节的整数值写入DataOutputStream,这个整数包含15位数字。我该怎么做呢?7字节=56位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
这意味着您最多可以表示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正如您所标记的,这个答案是正确的,十进制基数根本不能是一个要求,与您上面令人困惑的回答相反。