आरंभ करने के लिए, आइए समझते हैं कि बाइनरी संख्या में पीछे वाले शून्य क्या होते हैं।
अनुगामी शून्य
कम से कम महत्वपूर्ण बिट (एलएसबी) से पहले एक के बाद शून्य की स्थिति को द्विआधारी संख्या में अनुगामी शून्य कहा जाता है।
उदाहरण
104 दशमलव संख्या है
104 की बाइनरी संख्या है:(MSB) 1101000(LSB)
यहाँ,
- MSB सबसे महत्वपूर्ण बिट को संदर्भित करता है।
- LSB कम से कम महत्वपूर्ण बिट को संदर्भित करता है।
- एलएसबी से पहले बिट सेट के बाद, तीन शून्य हैं।
- अनुगामी शून्यों की संख्या तीन है।
उदाहरण
दी गई संख्या के लिए अनुगामी शून्यों की संख्या गिनने का कार्यक्रम निम्नलिखित है -
#include<stdio.h> #include<stdlib.h> int main(){ int number, i, trail = 0, size; printf("Enter a number\n"); scanf("%d",&number); size = sizeof(number) * 8; for(i = 0; i < size; i++){ if((number >> i) & 1) { break; } trail++; } printf("Number of trailing ZERO is = %d", trail); return 0; }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
Enter a number 24 Number of trailing ZERO is = 3
अग्रणी शून्य
यदि शून्य की स्थिति बिट से पहले एक पर सेट है , उन्हें अग्रणी शून्य कहा जाता है।
उदाहरण
94 दशमलव संख्या है।
94 की बाइनरी संख्या है:(MSB) .....001011110(LSB)
अग्रणी शून्य की संख्या =25
. हैकार्यक्रम
नीचे दी गई संख्या के लिए अग्रणी शून्यों की संख्या गिनने का कार्यक्रम है।
#include<stdio.h> #include<stdlib.h> int main(){ int number, i, lead = 0, Msb,size; printf("Enter a number\n"); scanf("%d",&number); size = sizeof(number) * 8; Msb=1<<(size-1); for(i = 0; i < size; i++){ if((number << i) & Msb) { break; } lead++; } printf("Number of Leading ZERO is = %d", lead); return 0; }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
Enter a number 94 Number of Leading ZERO is = 25