/******************************数制转换部分**************************************/
//将十六进制转为二进制
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;
}
}