Donada una cadena com a entrada, escriviu un programa per convertir els caràcters de la cadena donada en l'equivalent hexadecimal dels valors ASCII.
Exemples :
Entrada: Friki
Sortida: 4765656bEntrada: IronMan part 3
Sortida: 49726f6e4d616e20706172742033
ASCII significa Codi estàndard americà per a l'intercanvi d'informació . ASCII és un estàndard que assigna lletres, números i altres caràcters dins de les 256 ranures disponibles en el codi de 8 bits. Per exemple, el caràcter h minúscula (Char) té un valor decimal de 104, que és 01101000 en binari i 68 en hexadecimal.
El sistema de numeració hexadecimal o simplement hexadecimal utilitza el sistema Base de 16. El nombre hexadecimal utilitza 16 símbols {0, 1, 2, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} per representar tots els nombres. Aquí, (A, B, C, D, E, F) representa (10, 11, 12, 13, 14, 15).
Algorisme:
- Inicialitzar la cadena hexadecimal final com a buida.
- Considereu tots els caràcters de l'entrada, convertiu-los en nombre enter. Aquest valor enter és el valor ascii d'aquest caràcter.
- Canvieu aquest valor sencer a un valor hexadecimal i afegiu aquest valor hexadecimal a la cadena hexadecimal final.
Implementació bàsica de la idea anterior:
C++
c matriu de cadenes del programa
// 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> |
>
>
Java
// 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')); } }> |
>
>
Python 3
# 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'));> |
>
>Sortida
objecte java a json
4765656B>
Complexitat temporal: O (n * registre16(n)), on n és la longitud de la cadena donada.
Espai auxiliar: O(1).