c++ - সি++ এ স্থিত_কেন্দ্রিক সংখ্যার<স্বাক্ষরিত> সংখ্যাটি কেন স্থির থাকে বা না থাকলে তা পৃথক হয়



casting (1)

সি ++ বিধি কি সমান মানে মিথ্যা ? প্রদত্ত:

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

আপনার প্রোগ্রামের আচরণটি নির্ধারিত: সি ++ স্ট্যান্ডার্ডটি একটি নেতিবাচক ভাসমান পয়েন্ট unsigned একটি unsigned প্রকারের রূপান্তর হিসাবে সংজ্ঞায়িত করে না।

(মনে রাখবেন পরিচিত মোড়কের চারপাশের আচরণটি কেবল নেতিবাচক অবিচ্ছেদ্য ধরণের ক্ষেত্রে প্রযোজ্য))

সুতরাং আপনার প্রোগ্রাম আউটপুট ব্যাখ্যা করার চেষ্টা করার সামান্য বিন্দু আছে।





casting