एक डबल करने के लिए एक बाइट सरणी परिवर्तित करने के लिए मैं इस पाया:मैं एक बाइट सरणी को डबल और बैक में कैसे परिवर्तित कर सकता हूं?
//convert 8 byte array to double
int start=0;//???
int i = 0;
int len = 8;
int cnt = 0;
byte[] tmp = new byte[len];
for (i = start; i < (start + len); i++) {
tmp[cnt] = arr[i];
//System.out.println(java.lang.Byte.toString(arr[i]) + " " + i);
cnt++;
}
long accum = 0;
i = 0;
for (int shiftBy = 0; shiftBy < 64; shiftBy += 8) {
accum |= ((long)(tmp[i] & 0xff)) << shiftBy;
i++;
}
return Double.longBitsToDouble(accum);
लेकिन मैं जो कुछ भी एक बाइट सरणी में एक डबल बदल जाएगा नहीं पा सके।
आप कितने बाइट पसंद करेंगे? तकनीकी रूप से, बाइट्स की एक सरणी बनाने के लिए यह संभव होगा, उदाहरण के लिए प्रत्येक में केवल एक बिट जानकारी हो। – Pops
पोप्स: मुझे लगता है कि यह कहना उचित है कि ऑक्टैवियन केवल डबल डबल्यू के पूर्ण प्रतिनिधित्व को स्टोर करने के लिए जरूरी बाइट्स की संख्या चाहता है जो आंतरिक डबल प्रतिनिधित्व से मेल खाता है। जावा में, इसकी गणना (int) (Double.Size/Byte.Size) के साथ की जा सकती है। –