۰۸-مهر-۱۳۸۸, ۰۸:۲۴:۰۲
۰۸-مهر-۱۳۸۸, ۰۹:۰۰:۳۸
این بیت رو تست می کنه
1<<bit
این (البته برعکسش) عدد یک رو به اندازه بیت شما شیفت می ده مثلا اگه ۲ باشه یک رو دوبار شیفت می ده تا این شکلی بشه
0b00000100 بعد با اون پرت شما and می کنه که در صورتی که بیت مربوطه یک باشه جواب غیر صفر و در صورتی که صفر باشه جواب صفره
1<<bit
این (البته برعکسش) عدد یک رو به اندازه بیت شما شیفت می ده مثلا اگه ۲ باشه یک رو دوبار شیفت می ده تا این شکلی بشه
0b00000100 بعد با اون پرت شما and می کنه که در صورتی که بیت مربوطه یک باشه جواب غیر صفر و در صورتی که صفر باشه جواب صفره
۰۹-مهر-۱۳۸۸, ۱۸:۵۱:۱۸
سلام و ممنون از جوابتون
قسمت اول جوابتون رو فهمیدم ولی قسمت دوم رو نه.
این قسمت رو میشه توضیح بیشتر بدید.
بعد با اون پرت شما and می کنه که در صورتی که بیت مربوطه یک باشه جواب غیر صفر و در صورتی که صفر باشه جواب صفره
قسمت اول جوابتون رو فهمیدم ولی قسمت دوم رو نه.
این قسمت رو میشه توضیح بیشتر بدید.
بعد با اون پرت شما and می کنه که در صورتی که بیت مربوطه یک باشه جواب غیر صفر و در صورتی که صفر باشه جواب صفره
۱۰-مهر-۱۳۸۸, ۱۰:۳۱:۰۴
این اعداد رو ببین
0b10101010 & 0b00001000 = 0b00001000
0b11110111 & 0b00001000 = 0b00000000
در اولین حالت جواب غیر صفر چون بیت مربوطه تو عدد اول یک هست
در حالت دوم جواب صفر با اینکه همه بیت ها به جز بیت مربوطه یک هستند ولی جواب صفر
این مثال برای تست بیت شماره ۳ بود
حل شد؟
0b10101010 & 0b00001000 = 0b00001000
0b11110111 & 0b00001000 = 0b00000000
در اولین حالت جواب غیر صفر چون بیت مربوطه تو عدد اول یک هست
در حالت دوم جواب صفر با اینکه همه بیت ها به جز بیت مربوطه یک هستند ولی جواب صفر
این مثال برای تست بیت شماره ۳ بود
حل شد؟
۱۱-مهر-۱۳۸۸, ۰۳:۵۴:۲۹
آره، این قسمت حل شد ولی یه چیز دیگه برام سواله
0b10101010 & 0b00001000 = 0b00001000
0b11110111 & 0b00001000 = 0b00000000
اینا که قرمز رنگ هستن میشن جوابی که از پرانتز بیرون میاد اما بعدش چی میشه؟(یعنی جوابمون صفر بشه یا چیزی غیر صفر ، بعد چه بلایی سر رجیستر پورت میاد که فقط همون بیت 1 میشه؟)
چون که اگه قرار باشه اینجوری( PORTB &= 1<<3) بشه با اون چیزایی که من میدونم نمیشه .
ممنونم
0b10101010 & 0b00001000 = 0b00001000
0b11110111 & 0b00001000 = 0b00000000
اینا که قرمز رنگ هستن میشن جوابی که از پرانتز بیرون میاد اما بعدش چی میشه؟(یعنی جوابمون صفر بشه یا چیزی غیر صفر ، بعد چه بلایی سر رجیستر پورت میاد که فقط همون بیت 1 میشه؟)
چون که اگه قرار باشه اینجوری( PORTB &= 1<<3) بشه با اون چیزایی که من میدونم نمیشه .
ممنونم
۱۵-مهر-۱۳۸۸, ۰۶:۵۱:۳۵
چی شد؟
دیگه جواب نداشت؟
دیگه جواب نداشت؟
۱۶-مهر-۱۳۸۸, ۱۵:۰۹:۴۹
گفتم این برای چک کردن بیت هست که ببینی صفر یا یک نه این که بیت رو صفر و یک کنه
۱۷-مهر-۱۳۸۸, ۰۴:۳۴:۲۱
مگه
#define bitset(port,bit) ((port) & (1<<bit))
یک بیت رو یک نمیکرد؟تا اینجا که ما فقط تست کریدم یک هست یا صفر۰۸-آبان-۱۳۸۸, ۱۸:۰۰:۱۱
اگر درست یادم باشه، بیت هایی که شماره اش رو میدین 1 میکنه. می رم باز چک می کنم