Відповіді:
Як було сказано раніше, формула = DEC2HEX (A1) перетворюється в шестнадцятковий, а DEC2HEX (A1,8) перетворюється в шестнадцятковий з префіксом 0 для позначення 32 біт. Якщо додавати провідні 0, то цифри є більш читабельними, особливо якщо ви використовуєте шрифт з фіксованою точкою, шістнадцяткову та десяткову версії можна змішати, коли всі цифри числа мають значення 0-9 (наприклад, 327701 = 50015).
Поліпшенням є додавання префікса "0x". Є два способи зробити це. = "0x" & DEC2HEX (A1,8) зробить трюк, але це змінює поле на текстове поле, тому його вже не можна легко використовувати у формулах. Інший метод - використання користувацького формату. Якщо застосувати користувацький формат "0x" @ до комірки, то значення комірки все ще може використовуватися в рівнянні. Приклади:
╔═══╦════════════════╦════════════╦═══════════════ ══════════════╦═══════════════╗ ║ ║ A ║ B ║ ║ ║ ╠═══╬════════════════╬════════════╬═══════════════ ══════════════╬═══════════════╣ ║ 1 ║ ║ Значення ║ Відповідна формула Format Формат чисел ║ ║ 2 ║ Десяткові ║ 11162790 ║ 11162790 ║ Загальні ║ ║ 3 ║ Hex x AA54A6 ║ = DEC2HEX (B2) ║ Загальне ║ ║ 4 ║ ведучі 0 ║ 00AA54A6 ║ = DEC2HEX (B2,8) ║ Загальне ║ ║ 5 ║ Текстовий префікс 0x ║ 0x00AA54A6 ║ = DEC2HEX (B2,8) ║ „0x“ @ ║ ║ 6 ║ Текстовий префікс 0x ║ 0x00AA54A6 ║ = "0x" & DEC2HEX (B2,8) ║ Загальне ║ ║ 7 ║ Використовуйте B5 ║ AA54A600 ║ = DEC2HEX (HEX2DEC (B5) * 256) ║ Загальне ║ ║ 8 ║ Використовуйте B5 ║ 0xAA54A600 ║ = DEC2HEX (HEX2DEC (B5) * 256) ║ „0x“ @ ║ ║ 9 ║ Спробуйте використовувати B6 ║ #NUM! ║ = DEC2HEX (HEX2DEC (B6) * 256) ║ Загальне ║ ╚═══╩════════════════╩════════════╩═══════════════ ══════════════╩═══════════════╝
╔═══╦═════════════╦═══════════════╦═══════════════ ═════════════════════╦═════════╗ ║ ║ A ║ B ║ ║ ║ ╠═══╬═════════════╬═══════════════╬═══════════════ ═════════════════════╬═════════╣ ║ 1 ║ ║ Значення ║ Відповідна формула ║ Формат ║ ║ 2 ║ Десяткові ║ 3,098,743,209 ║ 3098743209 ║ #, ## 0 ║ ║ 3 ║ верхні байти ║ B8B3 ║ = DEC2HEX (INT (B2 / 2 ^ 16), 4) ║ Загальне ║ ║ 4 ║ Нижні байти ║ 11A9 ║ = DEC2HEX (MOD (B2, 2 ^ 16)) ║ Загальне ║ ║ 5 ║ Повне число ║ 0xB8B3_11A9 ║ = "0x" & DEC2HEX (INT (B2 / 2 ^ 16), 4) ║ Загальне ║ ║ ║ ║ ║ & "_" & DEC2HEX (MOD (B2, 2 ^ 16), 4) ║ ║ ╚═══╩═════════════╩═══════════════╩═══════════════ ═════════════════════╩═════════╝
Якщо ви хочете відформатувати комірок, щоб ви могли вводити десятковий номер і автоматично відображати його як шістнадцятковий номер, то це неможливо. Ви можете або відформатувати комірку як текст і ввести шістнадцяткові числа безпосередньо (але зауважте, що Excel не може використовувати їх для обчислень), або використовувати функції DEC2HEX()
та HEX2DEC()
функції для перетворення між базовою 10 та базовою 16.
Якщо осередок для перетворення є A1
використання =DEC2HEX(A1)
.
="0x"&DEC2HEX(A1,4)
для отримання результату, схожого 0x1AF2
.
Якщо вам потрібно виконати математичні операції над числами, перетвореними в шістнадцяткові, спочатку перетворіть їх у десяткові, виконайте операцію, а потім перетворіть назад у шестигранну.
Наприклад, якщо комірка A1
має шістнадцятковий номер, такий, як буде створено з цієї формули:
=DEC2HEX(17)
який відображатиметься як 11, а комірка A2
має формулу:
=DEC2HEX(165)
які відображатимуться як A5
, і ви хочете їх скласти разом, тоді ця формула отримає бажаний результат:
=DEC2HEX(HEX2DEC(A1)+HEX2DEC(A2))
який відображатиметься як B6
=REPT("0",4-LEN(DEC2HEX(B3)))&DEC2HEX(B3)
Формула REPT повторює "0" на основі довжини шістнадцяткової рядка, що формується шляхом перетворення її з десяткової, та бажаної довжини рядка HEX. У цьому прикладі я хочу створити рядки HEX довжиною 4.
Потім ви з'єднуєте провідні нулі з фактичним рядком HEX, тим самим генеруючи значення HEX потрібної довжини.
Переваги:
Примітка. Я використовую це під час копіювання рядків HEX, і вони копіюються з різною довжиною. Я спочатку генерую стовпець десяткових значень із вихідних значень, на яких я можу запустити цю формулу.
Ось я знайшов рішення, щоб переконатися, що я можу відформатувати ці шістнадцяткові номери у форматі HTML:
SWITCH(LEN(DEC2HEX(B6)),1,"000"&DEC2HEX(B6),2,"00"&DEC2HEX(B6),3,"0"&DEC2HEX(B6),4,DEC2HEX(B6))
DEC2BIN()
що перетворюється на бінарне. Для двійкової фіксованої ширини використовуйте щось на кшталт=TEXT(DEC2BIN(A1), "0000")