1 00:00:07,632 --> 00:00:10,270 [Powered by Google Translate] JORDAN JOZWIAK: প্রকার কাস্টিং, সহজ অর্থে, একটি 2 00:00:10,270 --> 00:00:13,300 উপায় দ্বারা কিছু তথ্য একটি কম্পিউটার এর ব্যাখ্যা পরিবর্তন 3 00:00:13,300 --> 00:00:16,560 পরোক্ষভাবে বা স্পষ্টভাবে তার ডাটা টাইপ পরিবর্তন করার. 4 00:00:16,560 --> 00:00:19,940 একটি float, অথবা উলটোটা যাও কোন int পরিবর্তন যেমন. 5 00:00:19,940 --> 00:00:21,550 যাও টাইপ কাস্টিং বোঝেন, আমরা প্রয়োজন 6 00:00:21,550 --> 00:00:22,680 মূলসূত্র সঙ্গে শুরু - 7 00:00:22,680 --> 00:00:24,140 তথ্য ধরনের নিজেরাই. 8 00:00:24,140 --> 00:00:26,960 C-এর মতো কম্পিউটার ভাষায়, সব কিছু ভেরিয়েবল সাজান আছে 9 00:00:26,960 --> 00:00:29,690 ডাটা টাইপ যে নির্ণয় কিভাবে কম্পিউটার, এবং অনুরূপভাবে 10 00:00:29,690 --> 00:00:32,140 ব্যবহারকারী, যে ব্যাখ্যা পরিবর্তনশীল. 11 00:00:32,140 --> 00:00:35,160 সংখ্যাসূচক যেমন কোন int, দীর্ঘ দীর্ঘ, float এবং হিসাবে ধরনের তথ্য 12 00:00:35,160 --> 00:00:38,110 ডবল, সব তাদের নিজস্ব অনন্য বৈশিষ্ট্য আছে এবং আছে 13 00:00:38,110 --> 00:00:41,370 যাও রেঞ্জ এবং স্পষ্টতা নানারকম মান চিহ্নিত করা হয়. 14 00:00:41,370 --> 00:00:44,800 প্রকার কাস্টিং আমাদের মত একটি ফ্লোটিং পয়েন্ট সংখ্যা নিতে পারবেন 15 00:00:44,800 --> 00:00:49,170 3.14 এবং দশমিক আগে অংশ পেতে, এই ক্ষেত্রে 3, 16 00:00:49,170 --> 00:00:51,590 দ্বারা কোন int এটি নিক্ষেপণ. 17 00:00:51,590 --> 00:00:53,900 চলুন শুরু করা যাক ইংরেজি ভাষা থেকে একটি সংক্ষিপ্ত জন্য একটি উদাহরণ: 18 00:00:53,900 --> 00:00:56,910 ধরণের পর্যালোচনা, এবং কিভাবে টাইপ কাস্টিং পরিবর্তন করতে পারেন 19 00:00:56,910 --> 00:00:59,380 আমাদের তথ্য এক টুকরা ব্যাখ্যা করা. 20 00:00:59,380 --> 00:01:05,269 তথ্য জানার জন্য, আমি কি এখানে প্রতীক নিতে. 21 00:01:05,269 --> 00:01:07,570 আমি ঠিক এই হিসাবে যত্নসহকারে কনফিগার লাইন পড়ুন 22 00:01:07,570 --> 00:01:10,100 চিহ্ন, কিন্তু ইংরেজি ভাষা হিসাবে এমন কারো জন্য যিনি জানেন, 23 00:01:10,100 --> 00:01:12,750 আপনি অবিলম্বে স্বীকার করি যে তারা সত্য হয়, চিঠি. 24 00:01:12,750 --> 00:01:15,580 আপনি পরোক্ষভাবে তথ্য টাইপ বোঝা. 25 00:01:15,580 --> 00:01:17,620 অক্ষর এই স্ট্রিং এ জন্যে আমরা দুটি দেখতে পারেন 26 00:01:17,620 --> 00:01:20,140 ভিন্ন শব্দ, তার নিজস্ব অর্থ সঙ্গে প্রতিটি. 27 00:01:20,140 --> 00:01:25,530 বিশেষ্য, এ হালচাল বাইরে হিসাবে বায়ু, আছে. 28 00:01:25,530 --> 00:01:28,280 এবং ক্রিয়া, বায়ু আছে, হিসাবে আমি প্রয়োজন 29 00:01:28,280 --> 00:01:31,410 আমার অ্যানালগ ঘড়ি তলিয়ে. 30 00:01:31,410 --> 00:01:33,420 এটি একটি আকর্ষণীয় উদাহরণ, কারণ আমরা দেখতে পারেন 31 00:01:33,420 --> 00:01:36,270 কিভাবে টাইপ যে আমরা আমাদের তথ্য ধার্য, কিনা বা বিশেষ্য 32 00:01:36,270 --> 00:01:39,080 ক্রিয়া, পরিবর্তন কিভাবে আমরা যে তথ্য ব্যবহার - 33 00:01:39,080 --> 00:01:41,730 শব্দ হিসাবে বায়ু বা বায়ু. 34 00:01:41,730 --> 00:01:44,100 যদিও একটি কম্পিউটার এবং ব্যাকরণ অংশের যত্ন সম্পর্কে না 35 00:01:44,100 --> 00:01:47,750 ইংরেজি বাক, একই মূল নীতি প্রযোজ্য. 36 00:01:47,750 --> 00:01:50,290 যে, আমরা সঠিক ব্যাখ্যা পরিবর্তন করতে পারেন 37 00:01:50,290 --> 00:01:53,140 একই দ্বারা কণ্ঠস্থ তথ্য শুধুমাত্র একটি এটি নিক্ষেপণ 38 00:01:53,140 --> 00:01:54,576 বিভিন্ন প্রকার. 39 00:01:54,576 --> 00:01:57,250 এখানে 32 বিট হয় সবচেয়ে সাধারণ ধরনের মাপ 40 00:01:57,250 --> 00:01:58,340 সিস্টেম হয়েছে. 41 00:01:58,340 --> 00:02:02,070 আমরা 1 বাইট, 4 বাইট int-এ এবং float, একটি দীর্ঘ সময়ে একটি গৃহস্থালি আছে 42 00:02:02,070 --> 00:02:04,390 লম্বা এবং 8 বাইট একটি ডবল. 43 00:02:04,390 --> 00:02:07,670 কারণ কোন int লাগে 4 বাইট আপ, এটা 32 বিট আপ নিতে হবে 44 00:02:07,670 --> 00:02:10,060 যখন এটি মেমরির এমন একটি বাইনারি সিরিজ হিসাবে সংরক্ষিত হয় 45 00:02:10,060 --> 00:02:11,500 এর zeros এবং বেশী. 46 00:02:11,500 --> 00:02:14,020 একটি টাইপ int, হিসাবে আমাদের পরিবর্তনশীল হিসাবে দীর্ঘ হিসাবে অবশেষ 47 00:02:14,020 --> 00:02:16,740 কম্পিউটার সবসময় বেশী এবং zeros থেকে রূপান্তর করা 48 00:02:16,740 --> 00:02:19,120 মূল নম্বর মধ্যে বাইনারি. 49 00:02:19,120 --> 00:02:21,270 যাইহোক, আমরা যারা তাত্ত্বিকভাবে 32 নিক্ষেপ করতে পারে 50 00:02:21,270 --> 00:02:23,510 বুলিয়ান ধরনের একটি সিরিজের মধ্যে বিট. 51 00:02:23,510 --> 00:02:26,090 কম্পিউটার এবং তারপর একটি নম্বর নেই, কিন্তু দেখতে হবে 52 00:02:26,090 --> 00:02:28,810 পরিবর্তে zeros এবং বেশী একটা সংগ্রহ. 53 00:02:28,810 --> 00:02:31,570 আমরা একটি ভিন্ন সাংখ্যিক হিসাবে যে তথ্য পড়তে চেষ্টা করে দেখতে পারেন 54 00:02:31,570 --> 00:02:34,660 টাইপ করুন অথবা এমনকি হিসাবে চার অক্ষর বিশিষ্ট স্ট্রিং. 55 00:02:34,660 --> 00:02:37,820 কাস্টিং সংখ্যার সঙ্গে যখন আচরণ, আপনি কিভাবে বিবেচনা করতে হবে 56 00:02:37,820 --> 00:02:40,470 আপনার স্পষ্টতা মান প্রভাবিত হবে. 57 00:02:40,470 --> 00:02:43,240 মনে রাখবেন যে স্পষ্টতা একই থাকতে পারেন, 58 00:02:43,240 --> 00:02:47,150 অথবা আপনি স্পষ্টতা হারান, কিন্তু আপনি কখনই স্পষ্টতা অর্জন করতে পারবেন. 59 00:02:47,150 --> 00:02:49,060 এর মাধ্যমে যাক তিনটি সবচেয়ে সাধারণ উপায় যে আপনি যা করতে পারেন জন্য যান 60 00:02:49,060 --> 00:02:50,400 স্পষ্টতা হারান. 61 00:02:50,400 --> 00:02:53,060 কোন int একটি float কাস্টিং সবকিছু truncation কারণ হবে 62 00:02:53,060 --> 00:02:54,900 দশমিক বিন্দু পরে, তাই আপনি বাম করছি 63 00:02:54,900 --> 00:02:55,950 সঙ্গে পুরো নম্বর. 64 00:02:55,950 --> 00:03:02,000 যদি আমরা float x 3.7 যা সমান হবে, আমরা নিক্ষেপ করতে পারেন 65 00:03:02,000 --> 00:03:05,580 এই কোন int x এর দ্বারা পরিবর্তনশীল সহজভাবে int-এ লেখা 66 00:03:05,580 --> 00:03:07,050 প্রথম বন্ধনী. 67 00:03:07,050 --> 00:03:10,010 যখনই আমরা এই শব্দটি ব্যবহার করে এখান, কার্যকরীভাবে আমরা করব 68 00:03:10,010 --> 00:03:12,810 মান তিনটি কারণ আমরা ছিন্ন করেছি ব্যবহার করা হবে 69 00:03:12,810 --> 00:03:14,880 দশমিক বিন্দু পরে সবকিছু. 70 00:03:14,880 --> 00:03:17,210 আমরা একটি int-দীর্ঘ দীর্ঘ, রূপান্তর করতে যা করবে না 71 00:03:17,210 --> 00:03:20,760 উচ্চ ক্রম বিট ক্ষতি একভাবে নেতৃত্ব. 72 00:03:20,760 --> 00:03:23,910 একটি দীর্ঘ দীর্ঘ সময় লাগে 8 বাইট, বা মেমরি মধ্যে 64 বিট আপ. 73 00:03:23,910 --> 00:03:27,050 সুতরাং যখন আমরা কোন int যা শুধুমাত্র 4 বাইট, 32 বা আছে তা নিক্ষেপ 74 00:03:27,050 --> 00:03:29,820 বিট, মূলত আমরা কাটা হয় সব বিট যে বন্ধ 75 00:03:29,820 --> 00:03:32,420 উচ্চতর বাইনারি মান প্রতিনিধিত্বকারী. 76 00:03:32,420 --> 00:03:34,690 এছাড়াও আপনি একটি float, যা করা হবে একটি ডবল নিক্ষেপ করতে পারে 77 00:03:34,690 --> 00:03:37,340 আপনি ডবল সর্বনিকটবর্তী সম্ভব ছাড়া float 78 00:03:37,340 --> 00:03:39,100 অগত্যা rounding এটি. 79 00:03:39,100 --> 00:03:41,840 অনুরূপ আমাদের int-এ রূপান্তর দীর্ঘ দীর্ঘ, ক্ষতিগ্রস্ত যাও 80 00:03:41,840 --> 00:03:44,890 স্পষ্টতা কারণ হল, একটি ডবল আরো তথ্য রয়েছে. 81 00:03:44,890 --> 00:03:47,910 একটি ডবল আপনি 53 বিট উল্লেখযোগ্য ধারণ করার অনুমতি দিতে হবে, 82 00:03:47,910 --> 00:03:50,650 প্রায় 16 সংখ্যা উল্লেখযোগ্য. 83 00:03:50,650 --> 00:03:53,050 যেহেতু আপনি একটি float শুধুমাত্র 24 ধারণ করার অনুমতি দেবে 84 00:03:53,050 --> 00:03:56,235 গুরুত্বপূর্ণ বিট, প্রায় সাত সংখ্যা উল্লেখযোগ্য. 85 00:03:56,235 --> 00:03:58,700 এই দুই ক্ষেত্রে, মনে করে সাহায্যকারী হতে পারে 86 00:03:58,700 --> 00:04:01,200 resizing একটি ছবির হিসাবে কাস্টিং টাইপ করুন. 87 00:04:01,200 --> 00:04:03,860 আপনি যখন একটি বড় আকারের থেকে যান এবং একটি ছোট আকারের, আপনি না দেখতে পারেন 88 00:04:03,860 --> 00:04:05,600 things পরিষ্কারভাবে হিসাবে কারণ আপনার তথ্য হারিয়ে 89 00:04:05,600 --> 00:04:07,530 পিক্সেলে আকারে. 90 00:04:07,530 --> 00:04:09,270 এছাড়াও কাস্টিং প্রকার ঝামেলা হতে পারে যখন আমরা 91 00:04:09,270 --> 00:04:11,050 floats যাও ints নিক্ষেপ. 92 00:04:11,050 --> 00:04:13,920 যেহেতু শুধুমাত্র একটি 32 বিট মেশিনের floats 24 আছে 93 00:04:13,920 --> 00:04:16,959 গুরুত্বপূর্ণ বিট, তারা মান সঠিকভাবে উপস্থাপন করতে পারেন না 94 00:04:16,959 --> 00:04:22,750 24, 16777217 বা ক্ষমতা বেশী 2. 95 00:04:22,750 --> 00:04:25,540 এখন আসুন স্পষ্ট এবং অন্তর্নিহিত কাস্টিং সম্পর্কে কথা বলুন. 96 00:04:25,540 --> 00:04:28,000 কাস্টিং স্পষ্ট হয় যখন আমরা প্রথম বন্ধনী টাইপ লিখুন 97 00:04:28,000 --> 00:04:29,430 আগে একটি পরিবর্তনশীল নাম. 98 00:04:29,430 --> 00:04:33,100 আগে একটি উদাহরণ হিসাবে, আমরা মৌখিক int-লিখেছে আগে আমাদের 99 00:04:33,100 --> 00:04:35,640 পরিবর্তনশীল x ভাসা. 100 00:04:35,640 --> 00:04:37,200 এই ভাবে, আমরা int মান পেতে, 101 00:04:37,200 --> 00:04:38,593 3.7 মান ছেঁটে ফেলা হয়েছে - 102 00:04:38,593 --> 00:04:40,370 3. 103 00:04:40,370 --> 00:04:42,970 অন্তর্নিহিত কাস্টিং হয় যখন স্বয়ংক্রিয়ভাবে কম্পাইলার পরিবর্তন 104 00:04:42,970 --> 00:04:46,340 একটি সুপার টাইপ একই ধরনের, অথবা কিছু অন্যান্য সাজানোর সমাপন 105 00:04:46,340 --> 00:04:48,310 ব্যবহারকারী যাও লিখুন প্রয়োজন ছাড়া নিক্ষেপণ 106 00:04:48,310 --> 00:04:49,720 কোনো অতিরিক্ত কোড. 107 00:04:49,720 --> 00:04:53,550 উদাহরণস্বরূপ, যখন আমরা 5 এবং 1.1 যোগ করুন, ইতিমধ্যে আমাদের মান আছে 108 00:04:53,550 --> 00:04:55,680 প্রকারের সাথে জড়িত. 109 00:04:55,680 --> 00:04:59,480 5 হয় কোন int, যেহেতু 1.1 একটি float. 110 00:04:59,480 --> 00:05:02,390 যাতে তাদের যোগ করুন, কম্পিউটারের একটি float মধ্যে 5 কাস্ট, 111 00:05:02,390 --> 00:05:04,530 যা হয়েছে সালে 5.0 লেখা হিসাবে একই জিনিস হবে 112 00:05:04,530 --> 00:05:06,476 প্রথম জায়গা. 113 00:05:06,476 --> 00:05:13,210 কিন্তু এই ভাবে আমরা float 5, অথবা 5.0, প্লাস কি বলতে ইতিমধ্যে ছিল 114 00:05:13,210 --> 00:05:16,960 সেখান থেকে একটি float, 1.1, এবং আমরা আসলে এইসব যুক্ত করতে পারেন 115 00:05:16,960 --> 00:05:18,640 মান 6.1 পেতে মান. 116 00:05:21,170 --> 00:05:23,500 অন্তর্নিহিত কাস্টিং আমাদের ভেরিয়েবেল্স ধার্য করতে পারবেন 117 00:05:23,500 --> 00:05:25,590 প্রতিটি অন্যান্য বিভিন্ন ধরনের. 118 00:05:25,590 --> 00:05:28,110 আমরা সবসময় একটি মধ্যে আরো একটি কম সঠিক টাইপ ধার্য করতে পারেন 119 00:05:28,110 --> 00:05:29,250 সুনির্দিষ্ট এক. 120 00:05:29,250 --> 00:05:37,060 উদাহরণস্বরূপ, যদি আমরা একটি ডবল x, ও কোন int y আছে - 121 00:05:37,060 --> 00:05:40,120 এবং এইসব কোনো মান যে আমরা তাদের সেট করতে পারে - 122 00:05:40,120 --> 00:05:43,560 আমরা x y সমান বলতে পারেন. 123 00:05:43,560 --> 00:05:46,340 কারণ ডবল কোন int তুলনায় আরো স্পষ্টতা আছে, তাই আমরা 124 00:05:46,340 --> 00:05:48,380 কোন তথ্য নষ্ট হবে. 125 00:05:48,380 --> 00:05:50,420 অন্য দিকে, অগত্যা এটা বলার সঠিক হবে না 126 00:05:50,420 --> 00:05:54,060 y x সমান, কারণ ডবল একটি বৃহত্তর তুলনায় মান থাকতে পারে 127 00:05:54,060 --> 00:05:55,220 পূর্ণসংখ্যা. 128 00:05:55,220 --> 00:05:57,420 এবং তাই পূর্ণসংখ্যা যাও সব রাখা সক্ষম নাও হতে পারে 129 00:05:57,420 --> 00:05:59,560 তথ্য ডবল সঞ্চিত. 130 00:05:59,560 --> 00:06:02,610 অন্তর্নিহিত কাস্টিং তুলনা অপারেটরদের ক্ষেত্রেও ব্যবহার করা হয় যেমন 131 00:06:02,610 --> 00:06:06,410 এর চেয়ে বড়, কম, বা সমতা অপারেটর. 132 00:06:06,410 --> 00:06:13,050 এই ভাবে আমরা 5.1 যদি না হয় 5 তার চেয়ে অনেক বেশী, এবং আমরা 133 00:06:13,050 --> 00:06:14,750 ফলে সত্য. 134 00:06:14,750 --> 00:06:18,470 5 কারণ হল কোন int, কিন্তু এটি একটি float যাও যাতে নিক্ষেপ করা হবে 135 00:06:18,470 --> 00:06:22,090 float 5.1 তুলনা করা, আমরা 5.1 হয় বলতে চাই 136 00:06:22,090 --> 00:06:24,550 5.0 অধিক. 137 00:06:24,550 --> 00:06:31,320 একই বলছে যদি 2.0 2 সমান সমান সঙ্গে সত্য. 138 00:06:31,320 --> 00:06:34,190 আমরা পেতে সত্য, কারণ কম্পিউটার নিক্ষেপ করা চাই 139 00:06:34,190 --> 00:06:39,750 পূর্ণসংখ্যা 2 এবং তারপর ভাসা 2.0 2.0 সমান সমান বলে, 140 00:06:39,750 --> 00:06:41,660 এটি সত্য. 141 00:06:41,660 --> 00:06:44,180 কি যে আমরা ints এবং অক্ষরের মধ্যে নিক্ষেপ করতে পারেন ভুলবেন না, 142 00:06:44,180 --> 00:06:46,350 বা ASCII মান. 143 00:06:46,350 --> 00:06:49,690 অক্ষর প্রয়োজন যাও বাইনারি হ্রাস করা হবে, যা আপনি কেন 144 00:06:49,690 --> 00:06:51,920 সহজে অক্ষর এবং তাদের নিজ নিজ মধ্যে রূপান্তর করতে পারেন 145 00:06:51,920 --> 00:06:53,260 ASCII মান. 146 00:06:53,260 --> 00:06:56,180 এই সম্পর্কে আরো জানতে, ASCII পরীক্ষা আমাদের ভিডিও আউট. 147 00:06:56,180 --> 00:06:58,080 যখন আপনি কিভাবে তথ্য সঞ্চিত আমার মনে হয় একটি মুহূর্ত নিতে, 148 00:06:58,080 --> 00:06:59,990 এটা ধারণা অনেক করা শুরু হয়. 149 00:06:59,990 --> 00:07:02,790 এটা বায়ু এবং বাতাসের মধ্যে পার্থক্য করার মত. 150 00:07:02,790 --> 00:07:05,490 ডেটা একই, কিন্তু টাইপ পরিবর্তন করতে পারেন কিভাবে আমরা 151 00:07:05,490 --> 00:07:06,720 এটা ব্যাখ্যা করা. 152 00:07:06,720 --> 00:07:10,430 আমার নাম জর্দান Jozwiak, এই cs50.