در این مطلب، ویدئو دستکاری بیت در پایتون: آیا بیت Nام تنظیم شده است؟ با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,170 –> 00:00:02,159
خوب پس در این ویدیو می خواهیم
2
00:00:02,159 –> 00:00:04,200
مشکل زیر را در پایتون حل
3
00:00:04,200 –> 00:00:05,759
کنیم، می خواهیم برنامه ای بنویسیم
4
00:00:05,759 –> 00:00:07,890
که یک عدد صحیح بگیرد و آزمایش کنیم که آیا
5
00:00:07,890 –> 00:00:09,900
بیت های n و
6
00:00:09,900 –> 00:00:12,120
نمایش باینری آن عدد صحیح تنظیم شده است یا
7
00:00:12,120 –> 00:00:14,400
خیر. بیت اگر برابر با
8
00:00:14,400 –> 00:00:16,320
یک باشد تنظیم می شود و اگر برابر با صفر باشد تنظیم نمی شود،
9
00:00:16,320 –> 00:00:18,270
بنابراین بیایید مثالی بزنیم که
10
00:00:18,270 –> 00:00:20,580
نمایش دودویی عدد
11
00:00:20,580 –> 00:00:23,100
شش توسط این نمایش در اینجا
12
00:00:23,100 –> 00:00:25,920
یک و یک صفر است، بنابراین اگر به
13
00:00:25,920 –> 00:00:27,689
کم اهمیت ترین بیت فکر کنیم. همانطور که در
14
00:00:27,689 –> 00:00:29,279
سمت راست قرار دارد، بنابراین این
15
00:00:29,279 –> 00:00:32,098
کماهمیتترین بیت است، این بیت صفر بیت 1
16
00:00:32,098 –> 00:00:34,200
بیت 2 است و مهمترین بیت در اینجا
17
00:00:34,200 –> 00:00:36,719
به عنوان بیت 2 است، در این مورد، این
18
00:00:36,719 –> 00:00:39,930
بیت سمت چپ است، اگر بیت صفر را بخواهیم، تابع ما باید با
19
00:00:39,930 –> 00:00:42,329
د. بیایید بگوییم این
20
00:00:42,329 –> 00:00:44,610
یکی دقیقاً در اینجا میپرسیم بیت صفر
21
00:00:44,610 –> 00:00:46,289
تنظیم شده در نمایش باینری
22
00:00:46,289 –> 00:00:48,210
عدد شش است که باید اشتباه بگیریم زیرا
23
00:00:48,210 –> 00:00:50,480
این بیت علامت نیست پس صفر است و
24
00:00:50,480 –> 00:00:52,469
اگر بپرسیم آیا
25
00:00:52,469 –> 00:00:54,690
بیتها هستند یا نه، بیایید بگوییم B2 یا B 1 که
26
00:00:54,690 –> 00:00:57,300
ei است مقدار کمی نیز یا یک بیت 1 یا مجموعه
27
00:00:57,300 –> 00:00:58,829
باید نتیجه درست را دریافت کنیم زیرا هر
28
00:00:58,829 –> 00:01:01,320
دوی این بیت ها روی یک تنظیم شده اند، بنابراین
29
00:01:01,320 –> 00:01:03,420
این کل عملکردی است که ما
30
00:01:03,420 –> 00:01:05,159
در این ویدیو می نویسیم و
31
00:01:05,159 –> 00:01:07,140
ایده هایی را که دیدیم ترکیب می کند. از
32
00:01:07,140 –> 00:01:09,720
ویدیوی قبلی که مشخص کردیم
33
00:01:09,720 –> 00:01:11,040
نمایش
34
00:01:11,040 –> 00:01:13,680
دودویی یک عدد زوج یا فرد است یا خیر و این کار
35
00:01:13,680 –> 00:01:14,880
را بدون استفاده از عملگر مدول انجام دادیم،
36
00:01:14,880 –> 00:01:17,040
بنابراین این ایده را که در
37
00:01:17,040 –> 00:01:20,369
آنجا استفاده می کنیم یعنی anding 1 را
38
00:01:20,369 –> 00:01:21,990
با نمایش دودویی آن عدد
39
00:01:21,990 –> 00:01:24,060
در کنار هم ترکیب می کنیم. با عملگر bit shift، بنابراین
40
00:01:24,060 –> 00:01:25,200
ما می خواهیم به نحوه عملکرد
41
00:01:25,200 –> 00:01:26,850
عملگر bit shift نگاهی بیندازیم که نتیجه
42
00:01:26,850 –> 00:01:28,350
آن چیست و سپس
43
00:01:28,350 –> 00:01:30,270
آن را با تابع انتهایی ترکیب می کنیم تا
44
00:01:30,270 –> 00:01:32,040
اساساً به ما کمک کند تعیین کنیم که آیا
45
00:01:32,040 –> 00:01:33,540
n ام یا خیر. بیت
46
00:01:33,540 –> 00:01:35,390
نمایش دودویی یک عدد تنظیم شده است یا نه،
47
00:01:35,390 –> 00:01:37,439
بنابراین بیایید به اینجا برویم و اجازه دهید شروع به
48
00:01:37,439 –> 00:01:38,939
ایجاد نظر دیگری کنیم
49
00:01:38,939 –> 00:01:41,729
تا کمی شهود به دست بیاوریم، بنابراین من فقط
50
00:01:41,729 –> 00:01:43,229
در این بلوک نظر ادامه می دهم و
51
00:01:43,229 –> 00:01:45,360
مشاهده را تایپ می کنم و ما قصد داریم
52
00:01:45,360 –> 00:01:47,040
به نحوه عملکرد عملگر bit shift نگاهی بیندازیم،
53
00:01:47,040 –> 00:01:49,079
بنابراین ما میخواهیم کمی
54
00:01:49,079 –> 00:01:51,420
تغییر را در نمایش باینری
55
00:01:51,420 –> 00:01:53,640
یک در نظر بگیریم، بنابراین میخواهیم ببینیم که اگر
56
00:01:53,640 –> 00:01:55,490
به تدریج با یک
57
00:01:55,490 –> 00:01:57,750
عدد افزایشی جابهجا شویم. از بیتها که چگونه این
58
00:01:57,750 –> 00:01:59,579
بر نمایش دودویی عدد 1 تأثیر میگذارد،
59
00:01:59,579 –> 00:02:02,579
بنابراین ما 1 داریم، فرض کنید
60
00:02:02,579 –> 00:02:05,700
0 به سمت چپ جابهجا شدهایم، بنابراین کاری
61
00:02:05,700 –> 00:02:07,200
که عملاً انجام میدهد این است که
62
00:02:07,200 –> 00:02:08,699
63
00:02:08,699 –> 00:02:11,340
نمایش باینری 0 از 1 را به ما میدهد، زیرا ما
64
00:02:11,340 –> 00:02:13,360
جابجایی مجدد بیش از 1 به
65
00:02:13,360 –> 00:02:17,380
سمت چپ بار برابر صفر، بنابراین به عبارت دیگر ما می
66
00:02:17,380 –> 00:02:18,490
خواهیم نمایش
67
00:02:18,490 –> 00:02:21,100
باینری یک را دریافت کنیم، بنابراین این انتقال به
68
00:02:21,100 –> 00:02:23,140
سمت چپ با صفر برابر است
69
00:02:23,140 –> 00:02:25,390
با نمایش باینری یک، بنابراین
70
00:02:25,390 –> 00:02:27,070
ما در حال جابجایی هستیم. آن را به سمت چپ با
71
00:02:27,070 –> 00:02:30,040
صفر بیت، بنابراین بیایید یک را برداریم و اجازه دهید
72
00:02:30,040 –> 00:02:32,110
دوباره به سمت چپ تغییر مکان دهیم، حالا
73
00:02:32,110 –> 00:02:35,350
بگوییم با یک، بنابراین در این مورد ما
74
00:02:35,350 –> 00:02:37,150
دوباره نمایش دودویی یک را
75
00:02:37,150 –> 00:02:39,250
داریم، همانطور که قبلا انجام می دادیم، اما اکنون آنچه را که می خواهیم انجام
76
00:02:39,250 –> 00:02:40,360
دهیم. انجام این کار این است که ما آن یکی را که قرار است تغییر
77
00:02:40,360 –> 00:02:41,830
دهیم، بگیریم آن را به سمت
78
00:02:41,830 –> 00:02:44,590
چپ یکی یکی میکنیم، بنابراین نتیجه آن
79
00:02:44,590 –> 00:02:46,510
این عبارت باینری خاص را
80
00:02:46,510 –> 00:02:48,940
در اینجا به ما میدهد، به همین ترتیب، اگر یکی را انتخاب
81
00:02:48,940 –> 00:02:50,890
کنیم که روی آن جابهجا شدیم، مثلاً دو،
82
00:02:50,890 –> 00:02:52,750
این عبارت را در اینجا به
83
00:02:52,750 –> 00:02:54,640
ما میدهد، جایی که روی یکی جابجا شدهایم. از
84
00:02:54,640 –> 00:02:56,980
سمت راست تا
85
00:02:56,980 –> 00:02:59,680
موقعیت دوم این عدد در اینجا، بنابراین با
86
00:02:59,680 –> 00:03:02,230
جابجایی یک به چپ با دو،
87
00:03:02,230 –> 00:03:04,120
این مورد را در اینجا و غیره و غیره به ما می دهد
88
00:03:04,120 –> 00:03:04,630
،
89
00:03:04,630 –> 00:03:06,430
بنابراین عملگر bit shift که
90
00:03:06,430 –> 00:03:08,410
بیت ها را به چپ تغییر می دهد، اینگونه است.
91
00:03:08,410 –> 00:03:10,630
در این مورد شماره یک را تحت تأثیر قرار می
92
00:03:10,630 –> 00:03:11,980
دهیم و ما آن را با
93
00:03:11,980 –> 00:03:14,739
آنچه در ویدیوی زوج و فرد برای سری ویدیوهای دستکاری بیت مشاهده کردیم ترکیب می کنیم،
94
00:03:14,739 –> 00:03:16,360
95
00:03:16,360 –> 00:03:18,220
اگر می خواهید ببینید، پیوندی به آن ویدیو می گذارم.
96
00:03:18,220 –> 00:03:20,799
که اگر به یک تجدید کننده نیاز دارید
97
00:03:20,799 –> 00:03:22,480
یا اگر می خواهید نوعی
98
00:03:22,480 –> 00:03:25,060
پیش ساز این ویدیو را ببینید زیرا این
99
00:03:25,060 –> 00:03:27,610
نوع ایده را
100
00:03:27,610 –> 00:03:29,950
با ایده عملگر bit shift ترکیب می کند تا این مشکل را حل
101
00:03:29,950 –> 00:03:32,110
کند بنابراین ما بدانیم که
102
00:03:32,110 –> 00:03:34,360
عملگر bit shift چگونه کار می کند و من هستم فقط
103
00:03:34,360 –> 00:03:35,650
میرویم و میگوییم که ما میتوانیم n
104
00:03:35,650 –> 00:03:40,030
ترکیب میتوانیم عملگر shift را
105
00:03:40,030 –> 00:03:45,750
با همان ایدهای که در
106
00:03:45,750 –> 00:03:48,340
ویدیوی زوج و فرد دیدیم ترکیب کنیم، بنابراین من پیوندی به
107
00:03:48,340 –> 00:03:51,040
آن در توضیحات این ویدیو میگذارم تا
108
00:03:51,040 –> 00:03:53,260
اگر میخواهید بتوانید آن
109
00:03:53,260 –> 00:03:55,000
را بررسی کنید. یک بلوک دنباله دار دیگر فقط
110
00:03:55,000 –> 00:03:56,830
برای کمی شهود بیشتر و کاری که می
111
00:03:56,830 –> 00:03:57,640
خواهیم انجام دهیم این است که به چند نمونه نگاه می کنیم،
112
00:03:57,640 –> 00:03:59,380
بنابراین بیایید
113
00:03:59,380 –> 00:04:01,330
به مثالی که
114
00:04:01,330 –> 00:04:03,580
در بالای این ویدیو توضیح دادیم، یعنی عدد
115
00:04:03,580 –> 00:04:05,290
شش نگاه کنیم. به یاد داشته باشید که
116
00:04:05,290 –> 00:04:07,000
نمایش دودویی عدد شش یک و
117
00:04:07,000 –> 00:04:09,640
یک صفر است و کاری که میخواهیم انجام دهیم این است که
118
00:04:09,640 –> 00:04:11,170
میخواهیم بررسی کنیم، فرض کنید در
119
00:04:11,170 –> 00:04:13,750
این مثال میخواهیم بپرسیم
120
00:04:13,750 –> 00:04:17,228
مجموعه بیتهای دوم است، بنابراین میخواهیم در
121
00:04:17,228 –> 00:04:18,548
بیت دوم، باینری را بررسی کنیم.
122
00:04:18,548 –> 00:04:20,858
نمایش عدد شش تنظیم شده است، بنابراین ما بدانیم که
123
00:04:20,858 –> 00:04:23,950
در این مورد به این دلیل است که یک عدد است، بنابراین
124
00:04:23,950 –> 00:04:25,030
کاری که ما میخواهیم انجام دهیم این است که
125
00:04:25,030 –> 00:04:27,200
اگر میخواهیم بگیریم، فقط
126
00:04:27,200 –> 00:04:30,650
این عدد خاص را بگوییم و ما این عدد را
127
00:04:30,650 –> 00:04:32,270
انجام دهیم. و عملیات بین
128
00:04:32,270 –> 00:04:34,460
نمایش دودویی شش و این
129
00:04:34,460 –> 00:04:36,710
چیز w اساساً همه
130
00:04:36,710 –> 00:04:38,900
بیتهای دیگر را پنهان میکنیم و سپس کاری که
131
00:04:38,900 –> 00:04:40,360
انجام میدهیم این است که این یکی را در
132
00:04:40,360 –> 00:04:43,460
اینجا داشته باشیم تا بررسی کنیم این است که این n است
133
00:04:43,460 –> 00:04:46,220
در این مورد بیت دوم مجموعهای است که
134
00:04:46,220 –> 00:04:47,210
ما میخواهیم انجام دهیم. برای
135
00:04:47,210 –> 00:04:48,470
پایان دادن به همه چیز ما فقط می خواهیم
136
00:04:48,470 –> 00:04:49,760
همه چیز را خاموش کنیم همانطور که قبلاً گفتم
137
00:04:49,760 –> 00:04:51,920
و سپس بررسی می کنیم خوب است آیا
138
00:04:51,920 –> 00:04:54,740
این و با این بیت خاص در
139
00:04:54,740 –> 00:04:57,050
اینجا این یکی است اگر یکی در یکی
140
00:04:57,050 –> 00:04:58,910
باشد که به ما یکی می دهد.
141
00:04:58,910 –> 00:05:00,560
به ما نشان می دهد که
142
00:05:00,560 –> 00:05:02,690
اگر این بیت صفر بود، در غیر این صورت تنظیم می شود، به
143
00:05:02,690 –> 00:05:04,430
عنوان مثال، اگر وضعیت مشابهی
144
00:05:04,430 –> 00:05:06,230
داشتیم، مثلاً این را داشتیم، می خواستیم بررسی
145
00:05:06,230 –> 00:05:08,390
کنیم که آیا این صفرهایی که گفته شده است و
146
00:05:08,390 –> 00:05:10,880
می خواهیم آن را با این مورد در اینجا در اینجا پایان دهیم.
147
00:05:10,880 –> 00:05:12,920
بیت صفر ما صفر است زیرا
148
00:05:12,920 –> 00:05:14,210
این به ما نشان می دهد که
149
00:05:14,210 –> 00:05:16