টিল্ড অপারেটর (~) এছাড়াও bitwise না অপারেটর বলা হয়, সঞ্চালিত একজনের পরিপূরক আর্গুমেন্ট হিসাবে কোন বাইনারি সংখ্যা। অপারেন্ডটি যদি না দশমিক সংখ্যা হয় তবে এটি এটিকে বাইনারি হিসাবে রূপান্তর করে এবং এর পরিপূরক অপারেশন করে perform
কারও পরিপূরক গণনা করা সহজভাবে সমস্ত অঙ্ক [0 -> 1] এবং [1 -> 0] প্রান্ত: 0101 = 5; 0 (0101) = 1010. টিলড অপারেটরের ব্যবহার: ১. এটি মাস্কিং অপারেশনে ব্যবহৃত হয়, মাস্কিং মানে কোনও রেজিস্টারের অভ্যন্তরে মানগুলি সেট করা এবং পুনরায় সেট করা। প্রাক্তন জন্য:
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.
একে বলা হয় বিটস এর মাস্কিং । ২.ম্যাসিংয়ের বৈশিষ্ট্য ব্যবহার করে যে কোনও সংখ্যার বাইনারি সমতুল্য সন্ধান করুন।
#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 ;
k==0?printf("0"):printf("1");
}
}
আউটপুট: দশমিক 10 00001010 এর সমান
আমার পর্যবেক্ষণ : যে কোনও ডেটা প্রকারের সর্বাধিক পরিসরের জন্য, এর পরিপূরকটি কোনও সংশ্লিষ্ট মানের সাথে 1 দ্বারা হ্রাস পেয়েছে negativeণাত্মক মান সরবরাহ করে। উদা:
~ 1 --------> -2
~ 2 ---------> -3
এবং আরও ... আমি আপনাকে ছোট কোড স্নিপেট ব্যবহার করে এই পর্যবেক্ষণটি দেখাব
#include<stdio.h>
int main()
{
int a , b;
a=10;
b=~a;
printf("%d\n",a+~b+1);
return 0;
}
Output: 0
দ্রষ্টব্য: এটি কেবল তথ্য প্রকারের ব্যাপ্তির জন্য বৈধ। অর্থ উপাত্তের প্রকারের জন্য এই বিধিটি কেবলমাত্র [-2,147,483,648 থেকে 2,147,483,647] এর মানের জন্য প্রযোজ্য।
থ্যাঙ্কিউ ..... এটি আপনাকে সাহায্য করতে পারে