Як більшість із вас, напевно, знаєте, апаратні пам'яті (на байт) можна розділити на дві категорії - маленькі та великі . У мало-ендіанських спогадах байти нумеруються, починаючи з 0 на малому (найменш значущому) кінці, а у великих-ендіанських - навпаки.
Веселий факт : Ці умови засновані на книзі Джонатана Свіфта « Подорожі Гуллівера», де король Ліліпут наказав своїм громадянам розбивати яйця на кінці (таким чином, маленькі ендіанці), і повстанці розбили їх на великому кінці.
Як працює заміна
Припустимо, у нас є непідписане ціле число (32 біт) 12648430
в пам'яті машини з великим ендіаном, яке може виглядати так:
addr: 0 1 2 3
memory: 00 C0 FF EE
Інвертуючи порядок байтів, ми отримуємо шістнадцяткове число, 0xEEFFC000
яке знаходиться 4009738240
в десятковій частині.
Ваше завдання
Напишіть програму / функцію, яка отримує непідписане 32-бітове ціле число у десятковій частині та виводить отримане ціле число під час заміни ендіанності, як описано вище.
Правила
- Введення завжди буде в діапазоні
0
до4294967295
- Вихідні дані можуть бути надруковані в режим STDOUT (остаточні рядки / пробіли є прекрасними) або повернуті
- Введення та вихід є десятковими
- Поведінка неправильного введення не визначається
Тестові кейси
0 -> 0
1 -> 16777216
42 -> 704643072
128 -> 2147483648
12648430 -> 4009738240
16885952 -> 3232235777
704643072 -> 42
3735928559 -> 4022250974
4009738240 -> 12648430
4026531839 -> 4294967279
4294967295 -> 4294967295
42
задається у десятковій формі, але технічно це, наприклад, у двійковій символі С. Ви, звичайно 0x2a
, можете вводити те, що я хотів запобігти - це введення даних як рядка "2a"
або подібного.