Здравствуйте, есть такая задачка, кто-то сможет помочь? В файле содержатся целые числа в десятичном виде. Преобразовать каждое число в двоичную форму. Выполнить шифрование данных таким образом, чтобы каждые восемь двоичных символов превращались в букву латинского алфавита. Таблица соответствия кодов буквам содержится во втором файле. Предусмотреть функцию для выполнения дешифрования.
function tobin(num)
local tmp = {}
repeat
tmp[#tmp+1]=num%2
num = math.floor(num/2)
until num==0
return table.concat(tmp):reverse()
end
local function main()
io.input("number.txt")
while true do
local val = io.read("*number")
if val == nil then break end
local n = {}
n = tobin(val)
print(tostring(n))
end
local a = {}
io.input("shfr.txt")
while true do
local line = io.read("*line")
if line == nil then break end
x,y = string.match(line,"([01]+) (%a)")
a[x]=y
end
-- отладочный вывод
for k,v in pairs(a) do
print("["..k.."]="..v)
end
io.close()
end
main()
вот что получилось, есть ли какие-то встроенные функции для сравнения чисел n и ключа таблицы, и замены v на значения ключа таблицы?
Здравствуйте, есть такая задачка, кто-то сможет помочь? В файле содержатся целые числа в десятичном виде. Преобразовать каждое число в двоичную форму. Выполнить шифрование данных таким образом, чтобы каждые восемь двоичных символов превращались в букву латинского алфавита. Таблица соответствия кодов буквам содержится во втором файле. Предусмотреть функцию для выполнения дешифрования.
вот что получилось, есть ли какие-то встроенные функции для сравнения чисел n и ключа таблицы, и замены v на значения ключа таблицы?
Изменено пользователем WinYourmindПоделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах