टिल्ड ऑपरेटर (~) भी बिटवाइज़ नहीं बुलाया ऑपरेटर, तर्क के रूप में किसी भी द्विआधारी संख्या में से एक के पूरक प्रदर्शन करती है। यदि ऑपरेंड दशमलव संख्या नहीं है तो यह इसे बाइनरी के रूप में परिवर्तित करता है और इसका पूरक ऑपरेशन करता है।
किसी के पूरक की गणना करने के लिए बस सभी अंक [0 -> 1] और [1 -> 0] पूर्व: 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 से कम नकारात्मक मूल्य प्रदान करते हैं। पूर्व:
~ 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
नोट: यह केवल डेटा प्रकार की सीमा के लिए मान्य है। int डेटा प्रकार के लिए यह नियम केवल सीमा के मूल्य के लिए लागू होगा [-2,147,483,648 से 2,147,483,647]।
धन्यवाद .....यह आपकी मदद कर सकता है
यह किस उद्देश्य से सेवा करेगा? मैंने सुना है कि आप इसे बिना हस्ताक्षरित -> हस्ताक्षरित रूपांतरण में उपयोग कर सकते हैं लेकिन मुझे नहीं पता कि कैसे? – MarcusJ
बिटवाई नहीं कई चीजों के लिए उपयोगी नहीं है, उदाहरण के लिए, बिट मास्क। मुझे यकीन नहीं है कि हस्ताक्षर किए गए पूर्णांक रूपांतरण पर हस्ताक्षर किए जाने का आपका क्या मतलब है। – GWW
रुको, क्या आपको नहीं और बिटमास्क चाहिए? इस तरह मेरा बिट रीडर यह कर रहा है, लेकिन यह स्पर्शपूर्ण है। मैंने पढ़ा है कि यदि आपके पास एक्स है और नहीं, तो एक घटाएं, आपको एक हस्ताक्षरित नंबर का हस्ताक्षरित संस्करण मिलेगा, क्या यह सही नहीं है? – MarcusJ