#include<stdio.h>
#include<string.h>
//二进制字符串转化成十进制
int bits_dec(char binary[])
{
int len=strlen(binary);
int i;
int sum=0,value=1;
for (i=len-1;i>=0;i--)
{
if(binary[i]=='1')
sum+=value;
value*=2;
}
return sum;
}
//计算一个十进制数的二进制表示时的位数有多大
//直接计算右移了多少位就可
int numb_bits(int v)
{
int count=0;
while(v>0)
{
v=v>>1;
count++;
}
return count;
}
//输出一个十进制数的二进制表示
void printf_bit(int a)
{
int n=numb_bits(a);
int i;
for(i=n-1;i>=0;i--)
{
if(1<<i & a)
printf("1");
else
printf("0");
}
}
//多项式除法
int polydivide(int a,int b,int *remainder )
{
int tmp;
int c=numb_bits(a)-numb_bits(b);
int value=0;
while(c>=0)
{
value=(1<<c) | value; //计算商,
AES中构造s盒中的乘法逆元的c语言实现
最新推荐文章于 2023-07-11 12:18:51 发布