जावा और डिबग आउटपुट के विवरण को लागू करने के लिए मौजूदा जवाब बिंदु के कई के बाद से, द्विआधारी गुणा के पीछे गणित पर एक नजर डालते हैं कि वास्तव में क्यों जवाब देने के लिए।
@Kasperd की टिप्पणी सही दिशा में जाती है। मान लीजिए कि आप सीधे संख्या के साथ नहीं बल्कि उस संख्या के प्रमुख कारकों के साथ गुणा करते हैं। बहुत से संख्याओं में एक प्रमुख कारक के रूप में 2 होंगे। बाइनरी में यह एक लेफ्ट शिफ्ट के बराबर है। कम्यूटेशन द्वारा हम पहले 2 के प्रमुख कारकों से गुणा कर सकते हैं। इसका मतलब है कि हम सिर्फ एक लेफ्ट शिफ्ट करते हैं।
जब द्विआधारी गुणन नियमों पर एक नज़र डालते हैं, तो एक ही मामला जहां 1 एक विशिष्ट अंकों की स्थिति में परिणाम होगा, जब दोनों ऑपरेंड मान एक होते हैं।
तो एक बाईं पाली का प्रभाव यह है कि जब परिणाम को और अधिक बढ़ा दिया जाता है, तो 1 की सबसे कम स्थिति होती है।
चूंकि पूर्णांक में केवल सबसे कम क्रम बिट्स होते हैं, वे सभी 0 पर सेट होंगे जब प्राइम फैक्टर 2 को अक्सर परिणाम में पर्याप्त रूप से कोट किया जाता है।
ध्यान दें कि दो के पूरक प्रतिनिधित्व इस विश्लेषण के लिए रुचि के नहीं हैं, क्योंकि गुणन परिणाम के संकेत को परिणामी संख्या से स्वतंत्र रूप से गणना की जा सकती है। इसका मतलब है कि यदि मूल्य अधिक हो जाता है और नकारात्मक हो जाता है, तो सबसे कम क्रम बिट्स को 1 के रूप में दर्शाया जाता है, लेकिन गुणा के दौरान उन्हें 0 के रूप में फिर से व्यवहार किया जाता है।