سلام
دیشب برای اولین بار توی نت پد winavr داشتم مثلا کد می نوشتم
یه سوالی برام پیش اومد
اکثر برنامه های نوشته شده تحت winavr دیدم که وقتی می خواند وضعیت از بیت رو تغییر بدن مثلا می خوان بیتی رو 1 بکند این کار رو به شکل زیر انجام می دن
PORTB&=~(1<<1)
یا
PORTB|=1<<1
خوب همون کاری رو که خواسته میشه انجام می ده یعنی بیت مشخصی رو تغییر می ده
در حالیکه این کار رو که عملگرهای شیفت و نسبت دهی انجام شده میشه ساده تر از اون انجام داد
القصه ما فکر کردیم ما خلیم یا بالا نسبت ملت برنامه نویس
ولی دیدم نه اینم نیست
حالا سوالی دارم ایا این کار توی مرحله کامپایل کردن ( یا کارهای مشابه همین توی برنامه نویسی ) باعث میشه که کامپایلر کدهای ماشین سر راستی رو تولید بکنه ؟؟؟
نمی دونم ولی واقعا واسم سوال شد یعنی نمیشد اینا رو بیتی رو راحت دستکاری کرد چرا بایتی روی اونا کار کرده البته من منظورم واسه تغییر بیتی بود
صد البته اگه این کار رو برای چند بیت باهم انجام می داد صلاح بود
ممنونم :mrgreen:
دیشب برای اولین بار توی نت پد winavr داشتم مثلا کد می نوشتم
یه سوالی برام پیش اومد
اکثر برنامه های نوشته شده تحت winavr دیدم که وقتی می خواند وضعیت از بیت رو تغییر بدن مثلا می خوان بیتی رو 1 بکند این کار رو به شکل زیر انجام می دن
PORTB&=~(1<<1)
یا
PORTB|=1<<1
خوب همون کاری رو که خواسته میشه انجام می ده یعنی بیت مشخصی رو تغییر می ده
در حالیکه این کار رو که عملگرهای شیفت و نسبت دهی انجام شده میشه ساده تر از اون انجام داد
القصه ما فکر کردیم ما خلیم یا بالا نسبت ملت برنامه نویس
ولی دیدم نه اینم نیست
حالا سوالی دارم ایا این کار توی مرحله کامپایل کردن ( یا کارهای مشابه همین توی برنامه نویسی ) باعث میشه که کامپایلر کدهای ماشین سر راستی رو تولید بکنه ؟؟؟
نمی دونم ولی واقعا واسم سوال شد یعنی نمیشد اینا رو بیتی رو راحت دستکاری کرد چرا بایتی روی اونا کار کرده البته من منظورم واسه تغییر بیتی بود
صد البته اگه این کار رو برای چند بیت باهم انجام می داد صلاح بود
ممنونم :mrgreen:
دیدگاه