logo

文字列を 16 進数の ASCII 値に変換します

入力として文字列を指定すると、指定された文字列の文字を ASCII 値に相当する 16 進数に変換するプログラムを作成します。

例:



入力: オタク
出力: 4765656b

入力: アイアンマンパート3
出力: 49726f6e4d616e20706172742033

アスキーはの略です 情報交換用米国標準コード 。 ASCII は、8 ビット コードで使用可能な 256 スロット内に文字、数字、およびその他の文字を割り当てる規格です。たとえば、小文字の h 文字 (Char) の 10 進値は 104 で、2 進数では 01101000、16 進数では 68 になります。



16 進数または単に 16 進数の番号付けシステムでは、16 進数システムが使用されます。 16 進数は、16 個の記号 {0、1、2、4、5、6、7、8、9、A、B、C、D、E、F} を使用してすべての数値を表します。ここで、(A、B、C、D、E、F)は(10、11、12、13、14、15)を表します。

アルゴリズム:

  1. 最終的な 16 進文字列を空として初期化します。
  2. 入力からのすべての文字を考慮し、それを整数にキャストします。この整数値は、その文字の ASCII 値です。
  3. この整数値を 16 進数値に変更し、この 16 進数値を最終的な 16 進文字列に追加します。



上記のアイデアの基本的な実装:

C++


二分探索のアルゴリズム



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




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

>

>

出力

4765656B>

時間計算量: O(n * ログ16(n))、n は指定された文字列の長さです。
補助スペース: ○(1)。