Определение чисел

Тема в разделе "Arduino & Shields", создана пользователем Arduino.ru, 24 янв 2018.

  1. Arduino.ru

    Arduino.ru Guest

    Появился вопрос, как определить является ли число положительным или отрицательным. Важно не само число а наличие минуса перед ним, кто поможет кусочком кода:)
     
  2. DIYMan

    DIYMan Guest

    Какое представление числа вас интересует? Байтовое, строковое? В строковом представлении числа - минус может ставится перед числом, это да. А вот в байтовом представлении числа никакого минуса перед числом нет - оно хранится, как неонка - унутре.

    А проверяется - крайне просто:

    Код (C++):
    if(number > 0) // положительное
    if(number < 0) // отрицательное
    Всё остальное - зависит от типа переменной. Вот скажите мне - какое это число, положительное или отрицательное (условимся, что это значение хранится в одном байте):
    Код (C++):
    0xFF
    Если сходу скажете - получите Нобелевку. Ибо - оно, как кот Шрёдингера - одновременно и положительное, и отрицательное, потому что:

    Код (C++):
    // Example program
    #include <iostream>
    #include <string>

    int main()
    {
    int8_t signedNumber = 0xFF;
    uint8_t unsignedNumber = 0xFF;
    std::string s1 = std::to_string(signedNumber);
    std::string s2 = std::to_string(unsignedNumber);
      std::cout <<s1 << "  " << s2 << std::endl;
    }
     
    Введите этот код вот тут: http://cpp.sh/ - и посмотрите вывод, он будет таким:

    Вопросы?
     
    arkadyf нравится это.
  3. Arduino.ru

    Arduino.ru Guest

    Спасибо, попробую
     
  4. b707

    b707 Гуру

    Шикарный вопрос от нерда :)
    Держите код. Куда мне придти за гонораром? :)
    Код (C++):
    if (число > 0) { положительное }
    elseif (число < 0)  { отрицательное}
    else { ноль! }
     
    БАРМАТОГРАФ и arkadyf нравится это.
  5. Нерд это количество написанных сообщений, а не измеритель знаний :)