logo

Konvertējiet heksadecimālo vērtību virkni par ASCII vērtību String

Ņemot vērā heksadecimālās vērtības virkni kā ievadi, uzdevums ir pārvērst doto heksadecimālās vērtības virkni tai atbilstošā ASCII formāta virknē.

Piemēri:

Ievade: 6765656b73
Izvade: geeks



Ievade: 6176656e67657273
Izvade: atriebēji

Heksadecimālā vai vienkārši Hex numerācijas sistēma izmanto Base of 16 sistēmu. Tā kā sistēma ir Base-16, ir iespējami 16 ciparu simboli. Heksadecimālais skaitlis izmanto 16 simbolus {0, 1, 2, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}, lai attēlotu visus skaitļus. Šeit (A, B, C, D, E, F) apzīmē (10, 11, 12, 13, 14, 15).

ASCII apzīmē Amerikas standarta informācijas apmaiņas kods . ASCII ir standarts, kas piešķir burtus, ciparus un citas rakstzīmes 256 slotos, kas pieejami 8 bitu kodā. Piemēram, mazā burta h rakstzīmes (Char) decimālvērtība ir 104, kas ir 01101000 binārā un 68 heksadecimālā.

Algoritms:

  1. Inicializēt galīgo ascii virkni kā tukšu.
  2. Izņemiet pirmās divas rakstzīmes no heksadecimālās virknes, kas tiek izmantota kā ievade.
  3. Pārvērtiet to par 16. bāzes veselu skaitli.
  4. Pārnesiet šo veselo skaitli rakstzīmē, kas ir ASCII ekvivalents 2 char hex.
  5. Pievienojiet šo rakstzīmi pēdējai virknei.
  6. Izņemiet nākamās divas rakstzīmes no heksadecimālās virknes un pārejiet uz 3. darbību.
  7. Veiciet šīs darbības, lai izvilktu visas rakstzīmes no heksadecimālās virknes.

Īstenošana:

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>

>

centos vs redhat
>

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




diff python

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

>

>

Izvade

geeks>

Laika sarežģītība : O(N), kur N ir dotās virknes garums
Palīgtelpa : O(N)

2. pieeja: bitveida operāciju izmantošana:

Šī pieeja ir izmantot bitu darbības, lai tieši pārveidotu heksadecimālo virkni par ASCII virkni. Šajā pieejā mēs sāktu, pārveidojot heksadecimālo virkni par baitu sēriju. Mēs to varam izdarīt, atkārtojot virkni un pārvēršot katru heksadecimālo ciparu pāri par baitu. Kad mums ir baiti, mēs varam izmantot bitu darbības, lai pārvērstu tos par rakstzīmēm ASCII virknē.

Šajā ieviešanā mēs izmantojam virknes straumi, lai izveidotu ASCII virkni. Mēs atkārtojam heksadecimālo virkni, pārvēršot katru heksadecimālo ciparu pāri baitā, izmantojot stoi. Pēc tam mēs pievienojam baitu virknes straumei. Visbeidzot, mēs atgriežam virknes straumes saturu kā ASCII virkni.

Šeit ir šīs pieejas kods:

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

>

>

datuma virkne java

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#




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>

interfeiss pret abstrakto klasi

>

>

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

>

>

Izvade

geeks>

Laika sarežģītība: O(n), kur N ir dotās virknes garums
Palīgtelpa: O(n)