logo

Pretvori niz šestnajstiške vrednosti v niz vrednosti ASCII

Če je podani niz šestnajstiške vrednosti kot vhod, je naloga pretvoriti dani niz šestnajstiške vrednosti v ustrezen niz zapisa ASCII.

Primeri:

Vnos: 6765656b73
Izhod: geeki



Vnos: 6176656e67657273
Izhod: maščevalci

Šestnajstiški ali preprosto heksadecimalni sistem številčenja uporablja sistem z osnovo 16. Ker gre za sistem Base-16, obstaja 16 možnih simbolov števk. Šestnajstiško število uporablja 16 simbolov {0, 1, 2, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} za predstavitev vseh števil. Tu (A, B, C, D, E, F) predstavlja (10, 11, 12, 13, 14, 15).

ASCII pomeni Ameriška standardna koda za izmenjavo informacij . ASCII je standard, ki dodeljuje črke, številke in druge znake v 256 režah, ki so na voljo v 8-bitni kodi. Na primer, mala črka h (Char) ima decimalno vrednost 104, kar je 01101000 v dvojiški obliki in 68 v šestnajstiški obliki.

Algoritem:

  1. Končni ascii niz inicializirajte kot prazen.
  2. Izvlecite prva dva znaka iz šestnajstiškega niza, ki je bil vnesen kot vnos.
  3. Pretvorite ga v celo število z osnovo 16.
  4. Pretvori to celo število v znak, ki je v ASCII ekvivalentu 2 znakov hex.
  5. Dodajte ta znak končnemu nizu.
  6. Izvlecite naslednja dva znaka iz šestnajstiškega niza in pojdite na 3. korak.
  7. Sledite tem korakom, da izvlečete vse znake iz šestnajstiškega niza.

Izvedba:

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>

>

polna oblika pvr
>

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


ROM



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

>

>

Izhod

geeks>

Časovna zapletenost : O(N), kjer je N dolžina danega niza
Pomožni prostor : O(N)

Pristop 2: Uporaba bitnih operacij:

Ta pristop je uporaba bitnih operacij za neposredno pretvorbo šestnajstiškega niza v niz ASCII. Pri tem pristopu bi začeli s pretvorbo šestnajstiškega niza v niz bajtov. To lahko storimo s ponavljanjem skozi niz in pretvorbo vsakega para šestnajstiških števk v bajt. Ko imamo bajte, jih lahko z bitnimi operacijami pretvorimo v znake v nizu ASCII.

V tej izvedbi uporabljamo tok nizov za izdelavo niza ASCII. Ponavljamo skozi šestnajstiški niz in vsak par šestnajstiških števk pretvorimo v bajt s pomočjo stoi. Nato dodamo bajt nizovnemu toku. Na koncu vrnemo vsebino toka nizov kot niz ASCII.

Tukaj je koda tega pristopa:

css spreminjanje velikosti slike

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

>

>

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

vrsta lupine

>

>

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

>

>

Izhod

geeks>

Časovna kompleksnost: O(n), kjer je N dolžina danega niza
Pomožni prostor: O(n)