در این مطلب، ویدئو برنامه پایتون برای بررسی قدرت 2 | عملگر Bitwise Shift | چالش برنامه نویسی 3 با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:14:15
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,320 –> 00:00:02,240
سلام بچه ها و به کانال یوتیوب آکادمی amulya خوش آمدید
2
00:00:02,240 –> 00:00:03,840
3
00:00:03,840 –> 00:00:05,520
من امروز با یک برنامه چالش برانگیز دیگر برگشتم،
4
00:00:05,520 –> 00:00:07,919
می خواهم یک
5
00:00:07,919 –> 00:00:09,120
برنامه پایتون بنویسید
6
00:00:09,120 –> 00:00:12,480
تا بررسی کنید که آیا عدد صحیح وارد
7
00:00:12,480 –> 00:00:13,599
شده توان 2 است
8
00:00:13,599 –> 00:00:16,000
یا خیر، اما نکته اینجاست که شما
9
00:00:16,000 –> 00:00:16,960
باید این برنامه را
10
00:00:16,960 –> 00:00:20,000
با استفاده از bitwise بنویسید. اپراتور shift
11
00:00:20,000 –> 00:00:22,000
بسیار خوب است، پس این ویدیو را متوقف کنید و سعی کنید
12
00:00:22,000 –> 00:00:25,840
در حال حاضر راه حل این مشکل را حدس بزنید،
13
00:00:25,840 –> 00:00:28,080
اگر ایده ای دارید،
14
00:00:28,080 –> 00:00:30,000
فراموش نکنید که در بخش نظرات با ما به اشتراک بگذارید
15
00:00:30,000 –> 00:00:31,039
16
00:00:31,039 –> 00:00:32,880
و برای کسانی که نمی دانند چگونه
17
00:00:32,880 –> 00:00:35,040
این مشکل را حل کنند. نگران نباشید بیایید این کار
18
00:00:35,040 –> 00:00:36,239
را با هم انجام دهیم،
19
00:00:36,239 –> 00:00:39,600
بنابراین در اینجا دو قسمت در این برنامه داریم
20
00:00:39,600 –> 00:00:41,360
، بخش اول این است که باید بررسی
21
00:00:41,360 –> 00:00:43,760
کنیم که آیا عدد وارد شده توان 2 است یا
22
00:00:43,760 –> 00:00:45,360
خیر،
23
00:00:45,360 –> 00:00:47,840
باید عدد صحیح را وارد
24
00:00:47,840 –> 00:00:49,600
کنیم و باید بررسی کنیم که عدد وارد شده
25
00:00:49,600 –> 00:00:51,280
توان آن است یا خیر. 2 یا خیر
26
00:00:51,280 –> 00:00:53,920
و ما باید این کار را با استفاده از
27
00:00:53,920 –> 00:00:55,520
عملگر bitwise shift
28
00:00:55,520 –> 00:00:57,520
انجام دهیم، ابتدا ببینیم
29
00:00:57,520 –> 00:00:59,280
توان 2 توان 2
30
00:00:59,280 –> 00:01:02,879
چیست، عددی از فرم 2 توان n است
31
00:01:02,879 –> 00:01:05,760
که در آن n یک عدد صحیح است اعدادی که
32
00:01:05,760 –> 00:01:06,880
می توانید
33
00:01:06,880 –> 00:01:09,840
در این شکل ar نشان دهید. e به عنوان توان 2 نامیده می شود به
34
00:01:09,840 –> 00:01:11,280
عنوان مثال 1
35
00:01:11,280 –> 00:01:14,799
2 4 شما می توانید
36
00:01:14,799 –> 00:01:18,640
1 را به عنوان 2 توان 0 2 به عنوان 2 توان 1
37
00:01:18,640 –> 00:01:22,159
4 به عنوان 2 توان 2 8 دارای 2 توان 3 است
38
00:01:22,159 –> 00:01:24,880
درست این اعداد توان 2 هستند بنابراین
39
00:01:24,880 –> 00:01:26,000
باید بررسی کنیم که آیا
40
00:01:26,000 –> 00:01:29,200
عدد وارد شده است یا خیر در این فرم و اینجا
41
00:01:29,200 –> 00:01:30,240
باید این کار را انجام دهیم که
42
00:01:30,240 –> 00:01:33,200
با استفاده از عملگر bitwise shift، 2
43
00:01:33,200 –> 00:01:34,159
عملگر شیفت
44
00:01:34,159 –> 00:01:36,079
سمت چپ و اپراتور شیفت سمت راست داریم،
45
00:01:36,079 –> 00:01:38,799
من قبلاً چند ویدیو در
46
00:01:38,799 –> 00:01:40,240
عملگرهای بیتی ساخته ام،
47
00:01:40,240 –> 00:01:41,840
بنابراین لینک همه آن
48
00:01:41,840 –> 00:01:43,680
ویدیوها را در کادر توضیحات ارائه خواهم کرد. بروید
49
00:01:43,680 –> 00:01:44,960
و آن را بررسی کنید
50
00:01:44,960 –> 00:01:47,200
و در اینجا برای نوشتن این برنامه
51
00:01:47,200 –> 00:01:49,040
از عملگر bitwise shift چپ استفاده می کنیم،
52
00:01:49,040 –> 00:01:52,640
بنابراین نشان می دهیم که با استفاده از
53
00:01:52,640 –> 00:01:55,280
این عملگر شیفت چپ بیتی است
54
00:01:55,280 –> 00:01:56,880
و در اینجا یک
55
00:01:56,880 –> 00:01:59,439
عملوند می گیریم و این تعداد بیتی است
56
00:01:59,439 –> 00:02:00,880
که می خواهید shift
57
00:02:00,880 –> 00:02:03,600
در اینجا x یک عملوند است به عنوان مثال اگر من
58
00:02:03,600 –> 00:02:04,000
59
00:02:04,000 –> 00:02:07,280
10 را مانند این در اینجا بگیرم 10 یک عملوند است
60
00:02:07,280 –> 00:02:09,598
این عملگر است و 2 چیزی نیست
61
00:02:09,598 –> 00:02:10,800
جز تعداد بیت هایی
62
00:02:10,800 –> 00:02:13,920
که می خواهید در حال حاضر همه چیز را جابجا کنید
63
00:02:13,920 –> 00:02:16,400
چه ارتباطی بین
64
00:02:16,400 –> 00:02:17,040
توان 2
65
00:02:17,040 –> 00:02:20,319
و سمت چپ وجود دارد. عملگر shift نحوه
66
00:02:20,319 –> 00:02:20,800
پیدا
67
00:02:20,800 –> 00:02:23,440
کردن en عدد صحیح tered توان 2
68
00:02:23,440 –> 00:02:24,239
یا عدم
69
00:02:24,239 –> 00:02:27,440
استفاده از عملگر bitwise shift سمت چپ است، بنابراین برای
70
00:02:27,440 –> 00:02:28,560
درک این موضوع
71
00:02:28,560 –> 00:02:30,560
باید با
72
00:02:30,560 –> 00:02:33,599
تخصص عملگر bitwise shift آشنا باشید
73
00:02:33,599 –> 00:02:36,480
زمانی که مقدار shift 1 را ترک کردم، سپس
74
00:02:36,480 –> 00:02:38,080
هر نتیجه ای که
75
00:02:38,080 –> 00:02:41,120
از آن حاصل می شود، قدرت است. 2
76
00:02:41,120 –> 00:02:44,720
بسیار خوب، کمی گیج کننده است،
77
00:02:44,720 –> 00:02:48,160
بنابراین من در اینجا به شما توضیح می دهم اگر
78
00:02:48,160 –> 00:02:50,480
مقدار 1 را به سمت چپ
79
00:02:50,480 –> 00:02:55,440
با 0 بیت تغییر دهم، خروجی آن به صورت 1 است
80
00:02:55,440 –> 00:02:57,840
که این
81
00:02:57,840 –> 00:02:59,200
نمایش باینری
82
00:02:59,200 –> 00:03:01,599
1 است و ما باید آن را به سمت چپ تغییر دهیم.
83
00:03:01,599 –> 00:03:02,400
سمت چپ
84
00:03:02,400 –> 00:03:05,280
بیت صفر به این معنی است که ما همان
85
00:03:05,280 –> 00:03:06,000
نتیجه را خواهیم گرفت،
86
00:03:06,000 –> 00:03:08,080
بنابراین این نمایش باینری
87
00:03:08,080 –> 00:03:10,000
یک است، بنابراین وقتی یک
88
00:03:10,000 –> 00:03:12,400
را با بیت صفر به سمت چپ تغییر میدهم
89
00:03:12,400 –> 00:03:13,440
، یک میگیرم
90
00:03:13,440 –> 00:03:16,800
و یک چیزی نیست جز دو توان صفر
91
00:03:16,800 –> 00:03:19,280
و حالا اگر من یکی را
92
00:03:19,280 –> 00:03:19,840
93
00:03:19,840 –> 00:03:23,120
یک بیت به سمت چپ تغییر می دهم، سپس در اینجا این یک
94
00:03:23,120 –> 00:03:25,519
نمایش دودویی از یک است، اگر می خواهم
95
00:03:25,519 –> 00:03:27,280
به سمت چپ شیفت کنم، باید
96
00:03:27,280 –> 00:03:30,480
یک بیت به این سمت تغییر کنم، بنابراین در اینجا یکی به
97
00:03:30,480 –> 00:03:31,519
اینجا می آید
98
00:03:31,519 –> 00:03:34,080
و در سمت راست من یک عدد اضافه می کنم. صفر پس
99
00:03:34,080 –> 00:03:36,879
این نمایش باینری دو است
100
00:03:36,879 –> 00:03:40,560
بنابراین وقتی شیفت را تک به تک ترک
101
00:03:40,560 –> 00:03:42,640
کردم خروجی را به صورت دو دریافت می کنم که چیزی نیست
102
00:03:42,640 –> 00:03:43,680
جز دو توان
103
00:03:43,680 –> 00:03:46,879
یک، اگر شیفت
104
00:03:46,879 –> 00:03:50,159
1 در 2 بیت را ترک کنم، به این صورت می شوم
105
00:03:50,159 –> 00:03:51,760
که این
106
00:03:51,760 –> 00:03:53,439
نمایش باینری 4 است،
107
00:03:53,439 –> 00:03:55,840
بنابراین من دریافت خواهم کرد 4 که چیزی نیست جز 2
108
00:03:55,840 –> 00:03:57,200
توان 2.
109
00:03:57,200 –> 00:04:00,799
اگر شیفت را یک به سه بیت رها
110
00:04:00,799 –> 00:04:03,840
کنم، هشت را میگیرم
111
00:04:03,840 –> 00:04:05,920
، این نمایش دودویی
112
00:04:05,920 –> 00:04:07,439
هشت است که چیزی جز
113
00:04:07,439 –> 00:04:11,040
دو توان سه نیست، بنابراین اگر تعداد
114
00:04:11,040 –> 00:04:14,640
بیت i است، 2 میشود. پاور من
115
00:04:14,640 –> 00:04:18,160
اینجاست اگر این من است پس این 2 توان است
116
00:04:18,160 –> 00:04:21,199
من اگر 0 بیت شیفت کنم 2 توان 0
117
00:04:21,199 –> 00:04:22,400
می گیرم که 1 است
118
00:04:22,400 –> 00:04:25,360
اگر 1 بیت شیفت کنم 2 توان می گیرم 1 که
119
00:04:25,360 –> 00:04:26,080
120
00:04:26,080 –> 00:04:28,800
اگر دو بیت شیفت کنم 2 می شود من دو توان دو را دریافت خواهم کرد،
121
00:04:28,800 –> 00:04:29,600
122
00:04:29,600 –> 00:04:31,919
بنابراین این ارتباط
123
00:04:31,919 –> 00:04:34,400
بین عملگر shift و توان دو است،
124
00:04:34,400 –> 00:04:36,320
اکنون باید از این برای نوشتن این
125
00:04:36,320 –> 00:04:37,840
برنامه استفاده کنیم،
126
00:04:37,840 –> 00:04:41,199
بنابراین در اینجا در فایل پایتون،
127
00:04:41,199 –> 00:04:43,360
مرحله اول این است که باید یک ورودی عدد صحیح بگیریم،
128
00:04:43,360 –> 00:04:44,400
129
00:04:44,400 –> 00:04:47,199
بنابراین در اینجا من یک متغیر را میگیرم و در اینجا
130
00:04:47,199 –> 00:04:50,240
میتوانید نام هر متغیر مناسبی را انتخاب
131
00:04:50,240 –> 00:04:53,199
کنید و در اینجا از تابع ورودی برای گرفتن ورودی استفاده میکنم
132
00:04:53,199 –> 00:04:54,720
133
00:04:54,720 –> 00:04:57,440
، عدد صحیح را وارد کنید و در اینجا ما
134
00:04:57,440 –> 00:04:57,840
135
00:04:57,840 –> 00:05:00,320
ورودی عدد صحیح می خواهیم و من از پایتون 3 استفاده می کنم
136
00:05:00,320 –> 00:05:01,600
و در پایتون 3
137
00:05:01,600 –> 00:05:03,520
به طور پیش فرض این تابع ورودی مقدار کمکی ورودی را می گیرد
138
00:05:03,520 –> 00:05:05,120
139
00:05:05,120 –> 00:05:07,280
اما چون ما ورودی عدد صحیح می خواهیم من
140
00:05:07,280 –> 00:05:09,520
از تابع int در اینجا کاملاً استفاده می
141
00:05:09,520 –> 00:05:11,199
کنم بنابراین اکنون با
142
00:05:11,199 –> 00:05:14,560
ورودی تمام شده است مرحله بعدی ما باید بررسی کنیم که
143
00:05:14,560 –> 00:05:17,600
این عدد توان 2 است یا
144
00:05:17,600 –> 00:05:19,520
خیر، برای اینکه کاری که باید انجام دهیم باید
145
00:05:19,520 –> 00:05:22,880
عملیات شیفت چپ را روی 1
146
00:05:22,880 –> 00:05:25,280
انجام دهیم و باید آن را بارها و بارها
147
00:05:25,280 –> 00:05:26,720
انجام دهیم زیرا من نمی
148
00:05:26,720 –> 00:05:30,240
دانم این عدد درست است.
149
00:05:30,240 –> 00:05:32,479
ابتدا از این شروع می کنیم و
150
00:05:32,479 –> 00:05:34,240
1 شیفت به چپ 0 انجام می
151
00:05:34,240 –> 00:05:36,400
دهیم و این نتیجه را با
152
00:05:36,400 –> 00:05:37,600
عدد وارد شده مقایسه می
153
00:05:37,600 –> 00:05:40,320
کنیم اگر برابر باشد، یعنی آن عدد
154
00:05:40,320 –> 00:05:41,520
توان 2 است
155
00:05:41,520 –> 00:05:43,759
در غیر این صورت باید این کار را انجام دهیم، باید
156
00:05:43,759 –> 00:05:44,720
1 را تغییر دهیم.
157
00:05:44,720 –> 00:05:47,919
به سمت چپ 1 بیت و
158
00:05:47,919 –> 00:05:48,720
باید بررسی کنیم
159
00:05:48,720 –> 00:05:51,759
که نتیجه آن با num مطابقت دارد یا خیر
160
00:05:51,759 –> 00:05:53,759
اگر مطابقت دارد، این بدان معناست که
161
00:05:53,759 –> 00:05:55,280
عدد وارد شده
162
00:05:55,280 –> 00:05:58,240
توان 2 است، اگر نه باید به این
163
00:05:58,240 –> 00:05:58,960
سمت راست
164
00:05:58,960 –> 00:06:01,440
برویم، باید این کار را دوباره و دوباره انجام دهیم تا زمانی که
165
00:06:01,440 –> 00:06:03,360
یک شرط برآورده شده است،
166
00:06:03,360 –> 00:06:06,319
به همین دلیل است که من یک متغیر i
167
00:06:06,319 –> 00:06:08,560
برابر با صفر میگیرم
168
00:06:08,560 –> 00:06:11,280
این به این دلیل است که ابتدا باید
169
00:06:11,280 –> 00:06:11,759
یک را
170
00:06:11,759 –> 00:06:14,720
به سمت چپ با صفر کمی به راست منتقل
171
00:06:14,720 –> 00:06:16,080
کنیم، به همین دلیل است که من
172
00:06:16,080 –> 00:06:18,960
متغیر i را برابر با صفر در اینجا در نظر میگیرم
173
00:06:18,960 –> 00:06:20,560
، نتیجه متغیر را میگیرم
174
00:06:20,560 –> 00:06:23,120
که برای ذخیره نتیجه است
175
00:06:23,120 –> 00:06:25,360
که این کار را انجام میدهیم. عملیات shift درست
176
00:06:25,360 –> 00:06:27,440
از آن جا نتیجه ای برای ذخیره می گیریم
177
00:06:27,440 –> 00:06:29,600
که من این متغیر را می گیرم و
178
00:06:29,600 –> 00:06:32,880
در ابتدا مقدار آن را 0 می گیرم و در
179
00:06:32,880 –> 00:06:34,240
اینجا حلقه while را
180
00:06:34,240 –> 00:06:37,680
همانطور که گفتم باید ابتدا یک
181
00:06:37,680 –> 00:06:40,720
به صفر به چپ تغییر دهیم. بیت بعدی
182
00:06:40,720 –> 00:06:42,880
دو بیت بعدی باید این کار را بارها و
183
00:06:42,880 –> 00:06:44,800
بارها برای تعداد بیت های مختلف انجام دهیم
184
00:06:44,800 –> 00:06:46,960
تا زمانی که نتیجه با
185
00:06:46,960 –> 00:06:48,400
عدد وارد شده به درستی مطابقت پیدا کند، به
186
00:06:48,400 –> 00:06:50,000
همین دلیل است که این شرط while را می گیریم،
187
00:06:50,000 –> 00:06:51,680
188
00:06:51,680 –> 00:06:54,080
شرایط آن را بعداً ذکر می کنم، ابتدا
189
00:06:54,080 –> 00:06:56,080
اجازه دهید بدن while را بنویسیم.
190
00:06:56,080 –> 00:06:58,400
در داخل این در حالی که بدن کاری که من انجام خواهم داد این است
191
00:06:58,400 –> 00:07:00,960
که نتیجه را برابر با
192
00:07:00,960 –> 00:07:04,319
من باید 1 را به سمت چپ
193
00:07:04,319 –> 00:07: