logo

Konvertera hexadecimalt värde String till ASCII-värde String

Med den hexadecimala värdesträngen som indata, är uppgiften att konvertera den givna hexadecimala värdesträngen till dess motsvarande ASCII-formatsträng.

Exempel:

Inmatning: 6765656b73
Produktion: nördar



Inmatning: 6176656e67657273
Produktion: hämnare

Det hexadecimala eller helt enkelt hexadecimala numreringssystemet använder systemet Base of 16. Eftersom det är ett Base-16-system finns det 16 möjliga siffror. Det hexadecimala talet använder 16 symboler {0, 1, 2, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} för att representera alla tal. Här representerar (A, B, C, D, E, F) (10, 11, 12, 13, 14, 15).

ASCII står för Amerikansk standardkod för informationsutbyte . ASCII är en standard som tilldelar bokstäver, siffror och andra tecken inom de 256 platser som finns tillgängliga i 8-bitarskoden. Till exempel har det gemena h-tecknet (Char) ett decimalvärde på 104, vilket är 01101000 i binär och 68 i hexadecimal.

Algoritm:

  1. Initiera sista ascii-strängen som tom.
  2. Extrahera de två första tecknen från den hexadecimala strängen som tas som indata.
  3. Konvertera det till bas 16 heltal.
  4. Kasta detta heltal till tecken som är ASCII-ekvivalent med 2 char hex.
  5. Lägg till detta tecken till den sista strängen.
  6. Extrahera nästa två tecken från hexadecimal sträng och gå till steg 3.
  7. Följ dessa steg för att extrahera alla tecken från en hexadecimal sträng.

Genomförande:

C++




// C++ program to convert hexadecimal> // string to ASCII format string> #include> using> namespace> std;> string hexToASCII(string hex)> {> >// initialize the ASCII code string as empty.> >string ascii =>''>;> >for> (>size_t> i = 0; i { // extract two characters from hex string string part = hex.substr(i, 2); // change it into base 16 and // typecast as the character char ch = stoul(part, nullptr, 16); // add this char to final ASCII string ascii += ch; } return ascii; } // Driver Code int main() { // print the ASCII string. cout << hexToASCII('6765656b73') << endl; return 0; } // This code is contributed by // sanjeev2552>

>

industri och fabrik
>

Java




// Java program to convert hexadecimal> // string to ASCII format string> import> java.util.Scanner;> public> class> HexadecimalToASCII {> >public> static> String hexToASCII(String hex)> >{> >// initialize the ASCII code string as empty.> >String ascii =>''>;> >for> (>int> i =>0>; i 2) { // extract two characters from hex string String part = hex.substring(i, i + 2); // change it into base 16 and typecast as the character char ch = (char)Integer.parseInt(part, 16); // add this char to final ASCII string ascii = ascii + ch; } return ascii; } public static void main(String[] args) { // print the ASCII string. System.out.println(hexToASCII('6765656b73')); } }>

>

>

Python3




# Python3 program to convert hexadecimal> # string to ASCII format string> def> hexToASCII(hexx):> ># initialize the ASCII code string as empty.> >ascii>=> ''> >for> i>in> range>(>0>,>len>(hexx),>2>):> ># extract two characters from hex string> >part>=> hexx[i : i>+> 2>]> ># change it into base 16 and> ># typecast as the character> >ch>=> chr>(>int>(part,>16>))> ># add this char to final ASCII string> >ascii>+>=> ch> > >return> ascii> # Driver Code> if> __name__>=>=> '__main__'>:> ># print the ASCII string.> >print>(hexToASCII(>'6765656b73'>))> # This code is contributed by> # sanjeev2552>

>

>

C#




// C# program to convert hexadecimal> // string to ASCII format string> using> System;> class> GFG> {> >public> static> String hexToASCII(String hex)> >{> >// initialize the ASCII code string as empty.> >String ascii =>''>;> >for> (>int> i = 0; i { // extract two characters from hex string String part = hex.Substring(i, 2); // change it into base 16 and // typecast as the character char ch = (char)Convert.ToInt32(part, 16);; // add this char to final ASCII string ascii = ascii + ch; } return ascii; } // Driver Code public static void Main(String[] args) { // print the ASCII string. Console.WriteLine(hexToASCII('6765656b73')); } } // This code is contributed by PrinciRaj1992>

>

>

Javascript




> >// JavaScript program to convert hexadecimal> >// string to ASCII format string> >function> hexToASCII(hex) {> >// initialize the ASCII code string as empty.> >var> ascii =>''>;> >for> (>var> i = 0; i // extract two characters from hex string var part = hex.substring(i, i + 2); // change it into base 16 and // typecast as the character var ch = String.fromCharCode(parseInt(part, 16)); // add this char to final ASCII string ascii = ascii + ch; } return ascii; } // Driver Code // print the ASCII string. document.write(hexToASCII('6765656b73'));>

fcfs
>

>

Produktion

geeks>

Tidskomplexitet : O(N), där N är längden på den givna strängen
Hjälputrymme : O(N)

Metod 2: Använda bitvisa operationer:

Detta tillvägagångssätt är att använda bitvisa operationer för att direkt konvertera den hexadecimala strängen till en ASCII-sträng. I detta tillvägagångssätt skulle vi börja med att konvertera den hexadecimala strängen till en serie byte. Vi kan göra detta genom att iterera genom strängen och konvertera varje par hexadecimala siffror till en byte. När vi väl har byten kan vi använda bitvisa operationer för att konvertera dem till tecken i ASCII-strängen.

I den här implementeringen använder vi en strängström för att bygga ASCII-strängen. Vi itererar genom den hexadecimala strängen och konverterar varje par hexadecimala siffror till en byte med stoi. Sedan lägger vi till byten till strängströmmen. Slutligen returnerar vi innehållet i strängströmmen som ASCII-strängen.

Här är koden för detta tillvägagångssätt:

C++




pandor iterrows

#include> using> namespace> std;> string hexToASCII(std::string hex) {> >stringstream ss;> >for> (>size_t> i = 0; i unsigned char byte =stoi(hex.substr(i, 2), nullptr, 16); ss << byte; } return ss.str(); } int main() { string hexString = '6765656b73'; string asciiString = hexToASCII(hexString); cout << asciiString << endl; return 0; }>

>

>

Java




import> java.util.*;> public> class> HexToASCII {> >public> static> String hexToASCII(String hex) {> >StringBuilder sb =>new> StringBuilder();> >for> (>int> i =>0>; i 2) { String str = hex.substring(i, i + 2); char ch = (char) Integer.parseInt(str, 16); sb.append(ch); } return sb.toString(); } public static void main(String[] args) { String hexString = '6765656b73'; String asciiString = hexToASCII(hexString); System.out.println(asciiString); } }>

>

>

Python3




def> hex_to_ascii(hex_str):> >ascii_str>=> ''> >for> i>in> range>(>0>,>len>(hex_str),>2>):> >byte>=> int>(hex_str[i:i>+>2>],>16>)> >ascii_str>+>=> chr>(byte)> >return> ascii_str> # Driver code> hex_string>=> '6765656b73'> ascii_string>=> hex_to_ascii(hex_string)> print>(ascii_string)>

>

>

shweta tiwari

C#




using> System;> using> System.Text;> public> class> Program> {> >public> static> string> HexToASCII(>string> hex)> >{> >StringBuilder sb =>new> StringBuilder();> >for> (>int> i = 0; i { byte b = Convert.ToByte(hex.Substring(i, 2), 16); sb.Append((char)b); } return sb.ToString(); } public static void Main() { string hexString = '6765656b73'; string asciiString = HexToASCII(hexString); Console.WriteLine(asciiString); } } // This code is contributed by Prajwal Kandekar>

>

>

Javascript




// Javascript code addition> function> hexToASCII(hex) {> >let sb =>''>;> >for> (let i = 0; i let str = hex.substring(i, i + 2); let ch = String.fromCharCode(parseInt(str, 16)); sb += ch; } return sb; } let hexString = '6765656b73'; let asciiString = hexToASCII(hexString); console.log(asciiString); // The code is contributed by Nidhi goel.>

>

>

Produktion

geeks>

Tidskomplexitet: O(n), där N är längden på den givna strängen
Hjälputrymme: O(n)