入力として文字列を指定すると、指定された文字列の文字を 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)を表します。
アルゴリズム:
- 最終的な 16 進文字列を空として初期化します。
- 入力からのすべての文字を考慮し、それを整数にキャストします。この整数値は、その文字の ASCII 値です。
- この整数値を 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)。