~
(গাণিতিক) অপারেটর সমস্ত বিট ফ্লিপ , এটা bitwise অস্বীকৃতি অপারেটর বলা হয়:
! ~ logical and bitwise negation
সুতরাং, যে জায়গাগুলিতে প্রসংগটি গাণিতিক হয়, সেখানে এটি সমস্ত বিটগুলির সাথে একটি সংখ্যাকে শূন্য হিসাবে সমস্ত বিটকে এক হিসাবে পরিবর্তন করে। একটি $(( ~0 ))
সংখ্যার উপস্থাপনের সমস্ত বিট (সাধারণত আজকাল b৪ বিট) সকলকে রূপান্তর করে।
$ printf '%x\n' "$(( ~0 ))"
ffffffffffffffff
সমস্ত সংখ্যার সাথে একটি সংখ্যা .ণাত্মক সংখ্যা (প্রথম বিট 1
) 1
বা সহজভাবে ব্যাখ্যা করা হয় -1
।
$ printf '%x\n' "-1"
ffffffffffffffff
$ echo "$(( ~0 ))"
-1
অন্যান্য সমস্ত সংখ্যার ক্ষেত্রেও একই ঘটনা ঘটে, উদাহরণস্বরূপ: $(( ~1 ))
সমস্ত বিটগুলি ফ্লিপ করে:
$ printf '%x\n' "$(( ~1 ))"
fffffffffffffffe
বা, বাইনারি: 1111111111111111111111111111111111111111111111111111111111111110
যা দু'জনের উপস্থাপনের সংখ্যা হিসাবে ব্যাখ্যা করা হয়:
$ echo "$(( ~1 ))"
-2
সাধারণভাবে, মানুষের গণিতের সমীকরণটি এটির $(( ~n ))
সমান$(( -n-1 ))
$ n=0 ; echo "$(( ~n )) $(( -n-1 ))"
-1 -1
$ n=1 ; echo "$(( ~n )) $(( -n-1 ))"
-2 -2
$ n=255 ; echo "$(( ~n )) $(( -n-1 ))"
-256 -256
এবং (আপনার প্রশ্ন):
$ n=33 ; echo "$(( ~n )) $(( -n-1 ))"
-34 -34