C++进制转化

/******************************数制转换部分**************************************/

//将十六进制转为二进制
void Convertion_16_2(unsigned long long k, int Positive_Binary[])
{
    unsigned  remainder;//余数
    unsigned   index = 64;//计数量
    while (k != 0)
    {
        remainder = k % 2;  //m除以2的余数
        k = k / 2;  //m被2整除的商
        Positive_Binary[index-1] = remainder;  //将余数存放在数组Positive_Binary[BinarySize]中,这里先正序排放,下一步要倒叙排列
        index--;
    }

}
//将二进制转为十进制
void Convertion_2_16(int M[], unsigned long long& m)
{
    unsigned long long Sum=0;
    for (int i=0;i<64;i++)
    {
        unsigned long long Pow = 1;
        for (int j = 0; j < 63 - i; j++)//这里注意j=0,j<63-i
        {
            Pow = Pow * 2;
        }
        //cout << "Pow=" << Pow<<endl;
        Sum = Sum + Pow * M[i];
    }
    m = Sum;
}

//循环左移函数
void Circulation_Left_Move(int Move_bits, int Input[28])
{
    int a = Input[0];
    int b = Input[1];

    for (int i = 0; i < 28 - Move_bits; i++)
    {
        Input[i] = Input[i + Move_bits];
    }

    if (Move_bits == 1)
    {
        Input[27] = a;
    }

    if (Move_bits == 2)
    {
        Input[26] = a;
        Input[27] = b;
    }
}
 

猜你喜欢

转载自blog.csdn.net/qq_20853741/article/details/112463358