Převeďte řetězec na hexadecimální hodnoty ASCII

Převeďte řetězec na hexadecimální hodnoty ASCII

Pokud je jako vstup uveden řetězec, napište program, který převede znaky daného řetězce na hexadecimální ekvivalent hodnot ASCII.

Příklady:

Vstup: Geek
Výstup: 4765656b

Vstup: IronMan část 3
Výstup : 49726f6e4d616e20706172742033

ASCII znamená Americký standardní kód pro výměnu informací . ASCII je standard, který přiřazuje písmena, čísla a další znaky do 256 slotů dostupných v 8bitovém kódu. Např. malé písmeno h (Char) má desítkovou hodnotu 104, což je 01101000 v binární soustavě a 68 v šestnáctkové soustavě.

Hexadecimální nebo jednoduše hexadecimální systém číslování používá systém Základ 16. Hexadecimální číslo používá 16 symbolů {0, 1, 2, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} k reprezentaci všech čísel. Zde (A, B, C, D, E, F) představuje (10, 11, 12, 13, 14, 15).

Algoritmus:

  1. Inicializujte konečný hexadecimální řetězec jako prázdný.
  2. Zvažte každý znak ze vstupu a přelijte jej na celé číslo. Tato celočíselná hodnota je ascii hodnotou daného znaku.
  3. Změňte tuto celočíselnou hodnotu na hexadecimální hodnotu a přidejte tuto hexadecimální hodnotu do konečného hexadecimálního řetězce.

Základní implementace výše uvedené myšlenky:

C++




// C++ program to convert> // ASCII string to Hexadecimal> // format string> // Function to convert> // decimal to hexadecimal> #include> using> namespace> std;> // function to convert decimal to hexadecimal> string decToHexa(> int> n)> {> > // char array to store hexadecimal number> > char> hexaDeciNum[100];> > // counter for hexadecimal number array> > int> i = 0;> > while> (n != 0) {> > // temporary variable to store remainder> > int> temp = 0;> > // storing remainder in temp variable.> > temp = n % 16;> > // check if temp <10> > if> (temp <10) {> > hexaDeciNum[i] = temp + 48;> > i++;> > }> > else> {> > hexaDeciNum[i] = temp + 55;> > i++;> > }> > n = n / 16;> > }> > string ans => ''> ;> > // printing hexadecimal number array in reverse order> > for> (> int> j = i - 1; j>= 0; j--)> > ans += hexaDeciNum[j];> > return> ans;> }> // Function to convert ASCII to HEX> string ASCIItoHEX(string ascii)> {> > // Initialize final String> > string hex => ''> ;> > // Make a loop to iterate through> > // every character of ascii string> > for> (> int> i = 0; i // Take a char from // position i of string char ch = ascii[i]; // Cast char to integer and // find its ascii value int tmp = (int)ch; // Change this ascii value // integer to hexadecimal value string part = decToHexa(tmp); // Add this hexadecimal value // to final string. hex += part; } // Return the final // string hex return hex; } int main() { // Driver code // Print the Hex String cout < < (ASCIItoHEX('Geek')); } // this code is contributed by phasing17>

Jáva




// Java program to convert ASCII> // string to Hexadecimal format string> import> java.util.Scanner;> class> ASCIItoHEX {> > // function to convert ASCII to HEX> > public> static> String ASCIItoHEX(String ascii)> > {> > > // Initialize final String> > String hex => ''> ;> > // Make a loop to iterate through> > // every character of ascii string> > for> (> int> i => 0> ; i // take a char from // position i of string char ch = ascii.charAt(i); // cast char to integer and // find its ascii value int in = (int)ch; // change this ascii value // integer to hexadecimal value String part = Integer.toHexString(in); // add this hexadecimal value // to final string. hex += part; } // return the final string hex return hex; } // Driver Function public static void main(String arg[]) { // print the Hex String System.out.println(ASCIItoHEX('Geek')); } }>

Python3




# Python3 program to convert ASCII> # string to Hexadecimal format string> # function to convert ASCII to HEX> def> ASCIItoHEX(ascii):> > # Initialize final String> > hexa> => ''> > # Make a loop to iterate through> > # every character of ascii string> > for> i> in> range> (> len> (ascii)):> > # take a char from> > # position i of string> > ch> => ascii[i]> > # cast char to integer and> > # find its ascii value> > in1> => ord> (ch)> > > # change this ascii value> > # integer to hexadecimal value> > part> => hex> (in1).lstrip(> '0x'> ).rstrip(> 'L'> )> > # add this hexadecimal value> > # to final string.> > hexa> +> => part> > # return the final string hex> > return> hexa> > # Driver Function> if> __name__> => => '__main__'> :> > # print the Hex String> > print> (ASCIItoHEX(> 'Geek'> ))> # This code is contributed by pratham76>

C#




// C# program to convert> // ASCII string to Hexadecimal> // format string> using> System;> class> GFG{> > // Function to convert> // decimal to hexadecimal> static> string> decToHexa(> int> n)> {> > // char array to store> > // hexadecimal number> > char> []hexaDeciNum => > new> char> [100];> > // counter for hexadecimal> > // number array> > int> i = 0;> > > while> (n != 0)> > {> > // temporary variable> > // to store remainder> > int> temp = 0;> > // Storing remainder> > // in temp variable.> > temp = n % 16;> > // Check if temp <10> > if> (temp <10)> > {> > hexaDeciNum[i] => > (> char> )(temp + 48);> > i++;> > }> > else> > {> > hexaDeciNum[i] => > (> char> )(temp + 87);> > i++;> > }> > n = n / 16;> > }> > string> ans => ''> ;> > // Printing hexadecimal number> > // array in reverse order> > for> (> int> j = i - 1;> > j>= 0; j--)> > {> > ans += hexaDeciNum[j];> > }> > return> ans;> }> // Function to convert ASCII to HEX> public> static> string> ASCIItoHEX(> string> ascii)> {> > // Initialize final String> > string> hex => ''> ;> > // Make a loop to iterate through> > // every character of ascii string> > for> (> int> i = 0;> > i { // Take a char from // position i of string char ch = ascii[i]; // Cast char to integer and // find its ascii value int tmp = (int)ch; // Change this ascii value // integer to hexadecimal value string part = decToHexa(tmp); // Add this hexadecimal value // to final string. hex += part; } // Return the final // string hex return hex; } // Driver code public static void Main(string []arg) { // Print the Hex String Console.Write(ASCIItoHEX('Geek')); } } // This code is contributed by rutvik_56>

Javascript




> > // JavaScript program to convert> > // ASCII string to Hexadecimal> > // format string> > // Function to convert> > // decimal to hexadecimal> > function> decToHexa(n) {> > // char array to store> > // hexadecimal number> > var> hexaDeciNum => new> Array(100).fill(0);> > // counter for hexadecimal> > // number array> > var> i = 0;> > while> (n !== 0) {> > // temporary variable> > // to store remainder> > var> temp = 0;> > // Storing remainder> > // in temp variable.> > temp = n % 16;> > // Check if temp <10> > if> (temp <10) {> > hexaDeciNum[i] = String.fromCharCode(temp + 48);> > i++;> > }> else> {> > hexaDeciNum[i] = String.fromCharCode(temp + 87);> > i++;> > }> > n = parseInt(n / 16);> > }> > var> ans => ''> ;> > // Printing hexadecimal number> > // array in reverse order> > for> (> var> j = i - 1; j>= 0; j--) {> > ans += hexaDeciNum[j];> > }> > return> ans;> > }> > // Function to convert ASCII to HEX> > function> ASCIItoHEX(ascii) {> > // Initialize final String> > var> hex => ''> ;> > // Make a loop to iterate through> > // every character of ascii string> > for> (> var> i = 0; i // Take a char from // position i of string var ch = ascii[i]; // Cast char to integer and // find its ascii value var tmp = ch.charCodeAt(0); // Change this ascii value // integer to hexadecimal value var part = decToHexa(tmp); // Add this hexadecimal value // to final string. hex += part; } // Return the final // string hex return hex; } // Driver code // Print the Hex String document.write(ASCIItoHEX('Geek'));>

Výstup

4765656B 

Časová náročnost: O(n * log 16 (n)), kde n je délka daného řetězce.
Pomocný prostor: O(1).