我正在研究一本书的章节回顾:在本章末尾,您需要完成一些问题/任务。

我决定以程序格式而不是文本文件格式进行处理:

#include <iostream>

int main(int argc, char* argv[]) {
std::cout << "Chapter review\n"
    << "1. Why does C++ have more than one integer type?\n"
        << "\tTo be able to represent more accurate values & save memory by only allocating what is needed for the task at hand.\n"

    << "2. Declare variables matching the following descriptions:\n"
        << "a.\tA short integer with the value 80:\n";
            short myVal1 = 80;
std::cout << "\t\t\"short myVal1 = 80;\": " << myVal1 << std::endl

        << "b.\tAn unsigned int integer with the value 42,110:\n";
            unsigned int myVal2 = 42110;
std::cout << "\t\t\"unsigned int myVal2 = 42110;\": " << myVal2 << std::endl

        << "c.\tAn integer with the value 3,000,000,000:\n";
            float myVal3 = 3E+9;
std::cout << "\t\t\"float myVal3 = 3E+9;\": " << static_cast<unsigned int>(myVal3) << std::endl

    << "3. What safeguards does C++ provide to keep you from exceeding the limits of an integer type?\n"
        << "\tWhen it reaches maximum number it starts from the begging again (lowest point).\n"

    << "4. What is the distinction between 33L and 33?\n"
            << "\t33L is of type long, 33 is of type int.\n"

    << "5. Consider the two C++ statements that follow:\n\tchar grade = 65;\n\tchar grade = 'A';\nAre they equivalent?\n"
            << "\tYes, the ASCII decimal number for 'A' is '65'.\n"

    << "6. How could you use C++ to find out which character the code 88 represents?\nCome up with at least two ways.\n"
            << "\t1: \"static_cast<char>(88);\": " << static_cast<char>(88) << std::endl; // 1.
            char myChar = 88;
std::cout   << "\t2: \"char myChar = 88;\": " << myChar << std::endl // 2.
            << "\t3: \"std::cout << (char) 88;\"  " << (char) 88 << std::endl // 3.
            << "\t4: \"std::cout << char (88);\": " << char (88) << std::endl // 4.

    << "7. Assigning a long value to a float can result in a rounding error. What about assigning long to double? long long to double?\n"
            << "\tlong -> double: Rounding error.\n\tlong long -> double: Significantly incorrect number and/or rounding error.\n"

    << "8. Evaluate the following expressions as C++ would:\n"
        << "a.\t8 * 9 + 2\n"
            << "\t\tMultiplication (8 * 9 = 72) -> addition (72 + 2 = 74).\n"
        << "b.\t6 * 3 / 4\n"
            << "\t\tMultiplication (6 * 3 = 18 -> division (18 / 4 = 4).\n"
        << "c.\t3 / 4 * 6\n"
            << "\t\tDivision (3 / 4 = 0) -> multiplication (0 * 6 = 0).\n"
        << "d.\t6.0 * 3 / 4\n"
            << "\t\tMultiplication (6.0 * 3 -> 18.0) -> division (18.0 / 4 = 4.5).\n"
        << "e.\t 15 % 4\n"
            << "\t\tDivision (15 / 4 = 3.75) Then returns the reminder, basically how many times can 4 go into 15 in this case that is 3 (3*4 = 12).\n"

    << "9. Suppose x1 and x2 are two type of double variables that you want to add as integers and assign to an integer variable. Construct a C++ statement for doing so. What if you wanted to add them as type double and then convert to int?\n"
        << "\t1: \"int myInt = static_cast<double>(doubleVar);\"\n\t2: \"int myInt = int (doubleVar);\".\n"

    << "10. What is the variable type for each of the following declarations?\n"
        << "a.\t\"auto cars = 15;\"\n\t\tint\n"
        << "b.\t\"auto iou = 150.37f;\"\n\t\tfloat\n"
        << "c.\t\"auto level = 'B';\"\n\t\tchar\n"
        << "d.\t\"auto crat = U'/U00002155';\"\n\t\twchar_t ?\n"
        << "e.\t\"auto fract = 8.25f/.25;\"\n\t\tfloat" << std::endl;

        return 0;
}

自从我读了第3章以来已经有一段时间了,这是由于移动/其他一些现实生活中的东西。

我在这里不确定的基本上是问题3:它说的是多重保障。

但是,我只知道一个:达到最大值后又从头开始?我在这里想念什么吗?

如果您也看到其他错误,请告诉我-我这样做是为了学习:)。

最佳答案

基本上我不能接受评论作为答案,所以总结一下:

没有保障措施,我误解了@ n.m这个问题。为我澄清了。

@ Jarod42指出的10.e错误,是正确的。

谢谢!

关于c++ - C++防护措施超出整数限制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23854335/

10-10 03:51