سرمایه گذاری متفاوت در سال نو 🍎🌱 ۳۵٪ تخفیف نوروزی ➕ حضور رایگان در مسترمایند نخبگان صنعت نرم‌افزار 💻✅
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ Mazaheri
کاربرد تیلدا چیست؟
جامعه هوش مصنوعی ایجاد شده در ۱۰ فروردین ۱۴۰۲

کاربرد تیلدا چیه؟

میشه بیشتر توضیح بدید؟

متوجه نشدم که دقیقا چه کاربردی داره و چه کاری میکنه؟

سلام،

عملگر بیتی 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

چرا -6؟

  1. عدد 5 در باینری: 00000101 (8 بیت).
  2. معکوس باینری آن: 11111010 (همه بیت‌ها معکوس شدند).
  3. این باینری نمایانگر عدد -6 در مکمل ۲ است.

 

مثال دیگر:

x = -3  # عدد -3 در مکمل ۲: 11111101
result = ~x
print(result)  #  2

چرا 2؟

  1. عدد -3 در مکمل ۲: 11111101 (باینری 8 بیت).
  2. معکوس باینری: 00000010 (معادل 2 در عدد دهدهی).

 

کاربردهای عملی:

  1. معکوس‌سازی بیت‌ها در پردازش داده‌ها.
  2. استفاده در عملیات بیت‌به‌بیت پیچیده:
    • در ماسک‌گذاری (masking) و فیلتر کردن بیت‌ها.
    • در بهینه‌سازی الگوریتم‌ها.

مثال در عملیات بیت‌به‌بیت:

فرض کنید می‌خواهید بیت‌های خاصی را در عددی صفر کنید:

x = 0b1100  # 12 در باینری
mask = 0b0101  # ماسک مورد نظر
result = x & ~mask  # بیت‌های ماسک صفر می‌شوند
print(bin(result))  #  0b1000

توضیح:

  • ~mask بیت‌های ماسک را معکوس می‌کند.
  • x & ~mask بیت‌های مشترک را صفر می‌کند.
مسعود کاویانی ۰۳ دی ۱۴۰۳، ۱۲:۱۷