I am a beginner starting out in c++ and I am trying to turn a decimal byte into a binary number. However, there is something wrong with my syntax or logic but I cannot figure it out. When trying to debug, I believe the error is around userValue5 but I'm not sure why. Any tips are appreciated and I am using VS2015.
    #include "stdafx.h"
    #include <iostream>
    #include <stdint.h>
    #include <cmath>
     //finds where each column is a 0 or a 1
    int binaryDigit(uint16_t y, uint16_t power)
    {
    if ((y / (pow(2, power))) > 1)
    return 1;
    else
    return 0;
    }
    int difference(uint16_t y, int x, uint16_t power)
    {
    if (x == 1)
    return y - pow(2, power);
    else
    return y;
    }
    //takes a decimal byte and turns it into binary
    int main()
    {
    using namespace std;
    cout << "Please insert a number between 0 and 255 so that I can convert it to binary: ";
    uint16_t userValue(0), power(7);
    cin >> userValue;
    int firstDigit = binaryDigit(userValue, power);
    uint16_t userValue2 = difference(userValue, firstDigit, power);
    --power;
    int secondDigit = binaryDigit(userValue2, power);
    uint16_t userValue3 = difference(userValue2, secondDigit, power);
    --power;
    int thirdDigit = binaryDigit(userValue3, power);
    uint16_t userValue4 = difference(userValue3, thirdDigit, power);
    --power;
    int fourthDigit = binaryDigit(userValue4, power);
    uint16_t userValue5 = difference(userValue4, thirdDigit, power);
    --power;
    int fifthDigit = binaryDigit(userValue5, power);
    uint16_t userValue6 = difference(userValue5, thirdDigit, power);
    --power;
    int sixthDigit = binaryDigit(userValue6, power);
    uint16_t userValue7 = difference(userValue6, thirdDigit, power);
    --power;
    int seventhDigit = binaryDigit(userValue7, power);
    uint16_t userValue8 = difference(userValue7, thirdDigit, power);
    --power;
    int eigthDigit = binaryDigit(userValue8, power);
    cout << "The number " << userValue << " in binary is ";
    cout << firstDigit << secondDigit << thirdDigit << fourthDigit << " " << fifthDigit << sixthDigit << seventhDigit << eigthDigit << endl;
    return 0;
    }
 
     
    