logo

Convertiți un șir în valori ASCII hexazecimale

Având ca intrare un șir, scrieți un program pentru a converti caracterele șirului dat în echivalentul hexazecimal al valorilor ASCII.

Exemple:



Intrare: Geek
Ieșire: 4765656b

Intrare: IronMan partea 3
Ieșire: 49726f6e4d616e20706172742033

ASCII înseamnă Codul American Standard pentru Schimbul de Informații . ASCII este un standard care atribuie litere, numere și alte caractere în cele 256 de sloturi disponibile în codul de 8 biți. De exemplu, caracterul h minuscul (Char) are o valoare zecimală de 104, care este 01101000 în binar și 68 în hexazecimal.



Sistemul de numerotare hexazecimală sau pur și simplu hexadecimală utilizează sistemul de bază 16. Numărul hexazecimal folosește 16 simboluri {0, 1, 2, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} pentru a reprezenta toate numerele. Aici, (A, B, C, D, E, F) reprezintă (10, 11, 12, 13, 14, 15).

Algoritm:

  1. Inițializați șirul Hex final ca gol.
  2. Luați în considerare fiecare caracter din intrare, transformați-l în număr întreg. Această valoare întreagă este valoarea ascii a acelui caracter.
  3. Schimbați această valoare întreagă în valoare hexazecimală și adăugați această valoare hexazecimală la șirul Hex final.



Implementarea de bază a ideii de mai sus:

C++


etichete html



// 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')); } }>

>

>

Python3


sistem de fișiere în linux



# 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'));>

>

>

Ieșire

4765656B>

Complexitatea timpului: O(n * log16(n)), unde n este lungimea șirului dat.
Spațiu auxiliar: O(1).