टिल्ड ऑपरेटर (~) जिसे बिटवाइज़ NOT ऑपरेटर भी कहा जाता है, किसी भी बाइनरी नंबर के पूरक को तर्क के रूप में प्रदर्शित करता है। यदि ऑपरेंड नॉट दशमलव संख्या है तो इसे बाइनरी के रूप में परिवर्तित करते हैं और किसी के पूरक ऑपरेशन करते हैं।
किसी के पूरक की गणना करने के लिए बस सभी अंकों को उल्टा करें [0 -> 1] और [1 -> 0] Ex: 0101 = 5; ~ (0101) = 1010. टिल्ड ऑपरेटर का उपयोग: 1. इसका उपयोग मास्किंग ऑपरेशन में किया जाता है, मास्किंग का अर्थ है किसी भी रजिस्टर के अंदर मान सेट करना और रीसेट करना। पूर्व के लिए:
char mask ;
mask = 1 << 5 ;
यह मास्क को 10000 के बाइनरी वैल्यू पर सेट करेगा और अन्य वेरिएबल के अंदर मौजूद बिट वैल्यू को चेक करने के लिए इस मास्क का इस्तेमाल किया जा सकता है।
int a = 4;
int k = a&mask ; if the 5th bit is 1 , then k=1 otherwise k=0.
इसे बिट्स की मास्किंग कहा जाता है । 2. मास्किंग गुणों का उपयोग करके किसी भी संख्या के द्विआधारी समतुल्य खोजें।
#include<stdio.h>
void equi_bits(unsigned char);
int main()
{
unsigned char num = 10 ;
printf("\nDecimal %d is same as binary ", num);
equi_bits(num);
return 0;
}
void equi_bits(unsigned char n)
{
int i ;
unsigned char j , k ,mask ;
for( i = 7 ; i >= 0 ; i--)
{
j=i;
mask = 1 << j;
k = n&mask ; // Masking
k==0?printf("0"):printf("1");
}
}
आउटपुट: दशमलव 10 00001010 के समान है
मेरा अवलोकन : किसी भी डेटा प्रकार की अधिकतम सीमा के लिए, किसी का पूरक नकारात्मक मूल्य को 1 से घटाकर किसी भी संबंधित मूल्य प्रदान करता है। ex:
~ 1 --------> -2
~ 2 ---------> -3
और इसी तरह ... मैं आपको यह अवलोकन थोड़े समय के लिए छलनी का उपयोग करके दिखाऊंगा
#include<stdio.h>
int main()
{
int a , b;
a=10;
b=~a; // b-----> -11
printf("%d\n",a+~b+1);// equivalent to a-b
return 0;
}
Output: 0
नोट: यह केवल डेटा प्रकार की सीमा के लिए मान्य है। इंट डेटा प्रकार के लिए यह नियम केवल सीमा के मान [-2,147,483,648 से 2,147,483,647] के लिए लागू होगा।
थैंक्यू ..... यह आपकी मदद कर सकता है