متوجه نشدم که دقیقا چه کاربردی داره و چه کاری میکنه؟
سلام،
عملگر بیتی NOT هست و روی بیتهای صفر و یک اعمال میشود. برای مثال NOT 0 میشه 1 و بالعکس. در اعداد باینری یک بیت مخصوص علامت هست که اون هم تغییر میکند.
محسن موحد۱۱ فروردین ۱۴۰۲، ۰۱:۵۲
تیلدا عملگریه که روی حالت باینری کد تاثیر میذاره حالا این ینی چی؟ مثلا فرض کن داریم a = 20 اینجا در حالت باینری پایتون میاد این عدد رو به صورت (10100) ذخیره میکنه -اون عدد باینری که تو پرانتزه معادل عدد 20 به زبان باینریه
حالا وقتی عملگر تیلدا رو قبل از عدد 20 قرار میدیم پایتون میاد اعداد باینری رو برعکس میکنه که در مثال بالا میشه (01011)
یعنی میاد صفرارو یک میکنه یکارو صفر میکنه
حالا نحوه ی نمایش این عدد باینری، یعنی 01011 در زبان ریاضی 19- میشه به صورت کلی تیلدا میاد عدد رو در این فرمول میذاره n = -n-1 یعنی عدد رو منفی میکنه بعد یکی ازش کم میکنه
مثلا اگه بنویسیم 5~ با استفاده از فرمول بالا اول میشه 5- بعد یکی ازش کم میشه میشه 6-
میثم جوهری۰۵ آذر ۱۴۰۳، ۱۵:۲۷
در زبان برنامهنویسی پایتون، علامت ~ به نام تیلدا (Tilde) شناخته میشود و معمولاً بهعنوان عملگر بیتبهبیت NOT (Bitwise NOT) استفاده میشود. این عملگر یک عدد صحیح را به صورت بیتبهبیت معکوس میکند.
مفهوم دقیق:
عددها در کامپیوتر به صورت باینری (0 و 1) ذخیره میشوند.
عملگر ~ تمام بیتهای یک عدد را معکوس میکند:
بیتهای 0 را به 1 و بیتهای 1 را به 0 تبدیل میکند.
این عمل بر اساس نمایش مکمل ۲ (Two's Complement) در پایتون پیادهسازی میشود.
نحوه عملکرد مکمل ۲:
در سیستم مکمل ۲:
معکوس کردن یک عدد مثبت (x) به یک عدد منفی معادل -(x+1) تبدیل میشود.
معکوس کردن یک عدد منفی (-x) به یک عدد مثبت معادل x-1 تبدیل میشود.
فرمول ریاضی:
برای عدد x: x=−(x+1)\text{~x} = -(x + 1)
مثالها:
مثال ساده:
x = 5 # عدد 5 به صورت باینری: 00000101
result = ~x
print(result) # -6