在加密系统中,长长要求把一行字符看作是一串二进制位,然后对某个固定的数进行求余运算。
解答:
#include <stdio.h> int main() { const int K=34943; unsigned int L=0; unsigned char c; unsigned long long test=0b0011001100110100001110010011010000110011; //34943的ascii码 printf("%llu\n",test); //勉强能够存下,用于验证计算是否准确。 while(scanf("%c",&c) && c!=‘\n‘){ //这里输入字符串“34943”,和test相同 L=((L<<8)+c)%K; //左移8位的原因是c的长度是8个二进制位,可以参考求余的数学计算方法。 } test=test%34943; printf("L=%u\n",L); printf("test=%llu\n",test); return 0; }
原文地址:https://www.cnblogs.com/litifeng/p/8443081.html
时间: 2024-11-03 18:00:27