logo

Konverter heksadesimalverdistreng til ASCII-verdistreng

Gitt den heksadesimale verdistrengen som input, er oppgaven å konvertere den gitte heksadesimale verdistrengen til dens tilsvarende ASCII-formatstreng.

Eksempler:

Inndata: 6765656b73
Produksjon: nerder



Inndata: 6176656e67657273
Produksjon: hevnere

Det heksadesimale eller ganske enkelt heksadesimale nummereringssystemet bruker Base of 16-systemet. Som et Base-16-system er det 16 mulige siffersymboler. Det heksadesimale tallet bruker 16 symboler {0, 1, 2, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} for å representere alle tall. Her representerer (A, B, C, D, E, F) (10, 11, 12, 13, 14, 15).

ASCII står for American Standard Code for Information Interchange . ASCII er en standard som tildeler bokstaver, tall og andre tegn innenfor de 256 sporene som er tilgjengelige i 8-biters koden. For eksempel har små bokstaver h-tegnet (Char) en desimalverdi på 104, som er 01101000 i binær og 68 i heksadesimal.

Algoritme:

  1. Initialiser siste ascii-streng som tom.
  2. Trekk ut de to første tegnene fra den heksadesimale strengen tatt som input.
  3. Konverter det til base 16 heltall.
  4. Kast dette heltallet til et tegn som er ASCII-ekvivalent med 2 hex-tegn.
  5. Legg til dette tegnet i den endelige strengen.
  6. Trekk ut de neste to tegnene fra en heksadesimal streng og gå til trinn 3.
  7. Følg disse trinnene for å trekke ut alle tegn fra heksadesimal streng.

Gjennomføring:

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>

>

vikas diviakirti
>

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


partielt derivat av lateks



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

>

>

Produksjon

geeks>

Tidskompleksitet : O(N), hvor N er lengden på den gitte strengen
Hjelpeplass : O(N)

Tilnærming 2: Bruke bitvise operasjoner:

Denne tilnærmingen er å bruke bitvise operasjoner for å konvertere den heksadesimale strengen direkte til en ASCII-streng. I denne tilnærmingen ville vi starte med å konvertere den heksadesimale strengen til en rekke byte. Vi kan gjøre dette ved å iterere gjennom strengen og konvertere hvert par heksadesimale sifre til en byte. Når vi har bytene, kan vi bruke bitvise operasjoner for å konvertere dem til tegn i ASCII-strengen.

I denne implementeringen bruker vi en strengstrøm for å bygge ASCII-strengen. Vi itererer gjennom den heksadesimale strengen, og konverterer hvert par heksadesimale sifre til en byte ved å bruke stoi. Deretter legger vi til byten til strengstrømmen. Til slutt returnerer vi innholdet i strengstrømmen som ASCII-strengen.

Her er koden for denne tilnærmingen:

C++




#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; }>

>

0,06 som en brøkdel
>

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)>

>

>

C#




navnekonvensjon java
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.>

>

>

Produksjon

geeks>

Tidskompleksitet: O(n), der N er lengden på den gitte strengen
Hjelpemellomrom: O(n)