কি সি ++ নিয়ম যে উপায়ে সমান হয় মিথ্যা । প্রদত্ত:
float f {-1.0};
bool equal = (static_cast<unsigned>(f) == static_cast<unsigned>(-1.0));
যেমন https://godbolt.org/z/fcmx2P
#include <iostream>
int main()
{
float f {-1.0};
const float cf {-1.0};
std::cout << std::hex;
std::cout << " f" << "=" << static_cast<unsigned>(f) << '\n';
std::cout << "cf" << "=" << static_cast<unsigned>(cf) << '\n';
return 0;
}
নিম্নলিখিত আউটপুট উত্পাদন করে:
f=ffffffff
cf=0
6
একটি উপভোগ করুন: আপনি অপরিবর্তিত আচরণ সম্পর্কে একটি বিস্মৃত বিস্মৃত নিয়মের দ্বারা ধরা পড়েছেন!
—
বাথশেবা
নেতিবাচক ফ্লোটকে স্বাক্ষরবিহীন রূপান্তরিত করার কোন ফলাফল আপনি প্রত্যাশা করেন?
—
Amadeus
নেতিবাচক পূর্ণসংখ্যাকে রূপান্তরিত করার সময় অ্যামাদিউস সম্ভবত আমাদের প্রায় সাধারণ মোড়ানো থাকে। আমাকে পরীক্ষা করে দেখতে হয়েছিল যে এটি ইউবি ছিল কারণ এটি আমাকে অবাক করেছিল।
—
এপ্রোগ্রামার
@ আমেদাস, এটি পার্থক্যটি বোঝার ক্ষেত্রে আরও বেশি ঘটনা ছিল। আমি কয়েক সপ্তাহ আগে একটি টাইপো বাগটি ঠিক করেছি ... একটি কনস্ট-ফ্লোট স্পষ্টভাবে স্বাক্ষরবিহীন (বাগ) এ ছুঁড়ে দেওয়া হয়েছিল এবং স্বাক্ষরিতভাবে (স্বাক্ষরিত ফাংশন প্যারামিটার হিসাবে) ফিরিয়ে দেওয়া হয়েছিল। পরে আমি ভাবলাম কেন মূল বাগটি ফাংশনে শূন্যের কারণ ঘটাচ্ছে। পরীক্ষার সূত্র ধরে যে এটি ছিল কারণ ভাসাটি কনস্টেন্ট ছিল। স্বাক্ষরবিহীনভাবে স্পষ্টভাবে কাস্ট করা হয়েছিল এবং তারপরে স্পষ্টভাবে স্বাক্ষরিত হয়ে পুনরায় কাস্ট করা হয়েছিল এমন একটি নন-কনস্টেট ফ্লোটের ফল একই বাহাওয়েরের ফলস্বরূপ ঘটেনি - দ্বিগুণ-কাস্ট নন-কনস্টের মূল এবং প্রত্যাশিত মান ছিল।
—
গ্রেইম্যাটআর