यदि मेरे पास बाइनरी नोटेशन है जैसे "1000010" जो कि 66 के बराबर है और मैं इसे एक से "1000011" तक बढ़ा सकता हूं जो 67 के बराबर है। यह मेरी सरणी में सही तरीके से कैसे किया जाता है? वर्तमान में यह "0100010" प्रिंट कर रहा है जो 34 है, लेकिन सही उत्तर के पास कहीं नहीं। मुझे नहीं लगता कि मेरी सरणी सही ढंग से स्थानांतरित हो रही है, न ही यह आकार बढ़ेगी क्योंकि संख्याएं बड़ी हो जाती हैं। हालांकि, मैं इस बारे में कोई धारणा नहीं कर सकता कि सरणी स्पष्ट रूप से बताई गई चीज़ों के अलावा अन्य कितनी बड़ी हो सकती है।एक सरणी में सही ढंग से बिट्स को कैसे बढ़ाया जाए?
public class math {
//=================================================================
// increment(A) returns an array of bits representing A+1.
//=================================================================
public static byte[] increment(byte[] A)
{
byte carry= 1;
for(int i = 0; i<A.length; i++){
byte b = A[i];
A [i] ^= carry;
carry &= b;
}
return A;
}
private static String toBinString (byte [] a)
{
String res = "";
for (int i = 0; i <a. length; i++)
{
res = (a [i] == 0 ? "0": "1") + res;
}
return res;
}
/**
* @param args
*/
public static void main(String[] args) {
byte [] A ={1,0,0,0,0,1,0};
increment(A);
System.out.println (toBinString (A));
}
}
संबंधित: http://stackoverflow.com/questions/1034473/java-iterate-bits- इन-बाइट-सर –
ए की आपकी घोषणा में ऐसा लगता है कि आप चाहते हैं कि बाएं (सबसे पहले) सरणी सबसे महत्वपूर्ण बिट हो, आपके बाकी प्रोग्राम में आप सरणी के पहले तत्व को कम से कम महत्वपूर्ण बिट मानते हैं। सबसे आसान समाधान शायद आपके नंबर को सरणी में रिवर्स ऑर्डर में दर्ज करना होगा, या सरणी को उलटा कर देगा ... – fvu
यह समाधान मेरे लिए काम करता है: https://stackoverflow.com/questions/4421400/how-to-get-0- गद्देदार-बाइनरी-प्रस्तुति-का-एक-पूर्णांक-इन-जावा – HoldOffHunger