Я пытаюсь создать алгоритм шифрования без использования массивов или строк, потому что это правила назначения, над которым я работаю. Из-за этого у меня было много проблем, пытаясь найти способ go с алгоритмом.
Обычно пользователь должен вводить 24-битный двоичный текст. Например: «010000010100000101000001», и алгоритм должен выполнить операцию XOR с ключом «01000001», разделить биты результата на 3 8-битные части и найти десятичное значение двоичного кода 8-битных частей. Затем переведите их каждый в символы ASCII.
Я подумал об этом, чтобы определить целое число со значением для 1000000000000000000000000 (24 нуля), чтобы нули ввода не исчезали на передней панели. Однако, поскольку число большое, ввод «010000010100000101000001» становится «947938113»
Я попросил программу напечатать ввод, чтобы увидеть: (вход «010000010100000101000001 ')
#include <stdio.h>
#include <math.h>
int main(){
int count,tot,cho,key=1010000010100000101000001,temp,encry_tex;
char;
printf("Which base will you use to enter text (base 16/2)?");
scanf("%d",&cho);
temp=1000000000000000000000000;
if (cho==2)
{
printf("Please enter the text to encrypt: ");
scanf("%d",&encry_tex);
tot=temp+encry_tex; /* this part is not important, that's how the
program was supposed to go but they don't mean
anything to the question im asking. */
tot=tot+key;
printf("%u",encry_tex);
}
}
Если я ввожу ввод, такой как 10001001, он все еще дает мне 10001001, проблема появляется, когда цифры становятся большими.
Как я могу это исправить?