ASCII significa Código Estándar Estadounidense para el Intercambio de Información. Las computadoras solo pueden entender números, por lo que un código ASCII es la representación numérica de un carácter como ‘a’ o ‘@’ o una acción de algún tipo. La tabla de búsqueda ASCII es una representación tabular de los valores correspondientes asociados a un carácter, es decir, podemos buscar el ASCII octal, decimal, hexadecimal o HTML correspondiente de un carácter.
Aquí, estamos implementando una tabla de búsqueda ASCII que toma un carácter como entrada y devuelve el valor octal, decimal, hexadecimal y HTML ASCII equivalente para el carácter. Esta tabla de búsqueda ASCII funciona para alfabetos, dígitos, operadores, separadores y símbolos especiales.
Ejemplo:
Input character = @ Output : Octal value: 100 Decimal value: 64 Hexadecimal value: 40 HTML value: @
- Paso 1: Convierta el carácter dado en su ASCII equivalente en forma decimal. Esto se puede hacer encasillando implícitamente el carácter en un valor integral (o restando por nulo).
- Paso 2: El valor calculado en el paso 1 se convierte en la representación decimal del carácter. Convierta el valor decimal en formato octal y hexadecimal para obtener el ASCII del carácter de entrada en los formatos dados.
- Paso 3: Agrega caracteres como prefijo y ; como posfijo del ASCII decimal, la expresión obtenida se convierte en el HTML ASCII del carácter dado. De esta manera podemos implementar fácilmente la tabla de búsqueda ASCII. Siga el código a continuación para ver la implementación.
Implementación:
C++
// C++ implementation of ASCII lookup table #include <iostream> #include <string> using namespace std; // Function to convert decimal value to // equivalent octal value int Octal(int decimal) { int octal = 0; string temp = ""; while (decimal > 0) { int remainder = decimal % 8; temp = to_string(remainder) + temp; decimal /= 8; } for (int i = 0; i < temp.length(); i++) octal = (octal * 10) + (temp[i] - '0'); return octal; } // Function to convert decimal value to // equivalent hexadecimal value string Hexadecimal(int decimal) { string hex = ""; while (decimal > 0) { int remainder = decimal % 16; if (remainder >= 0 && remainder <= 9) hex = to_string(remainder) + hex; else hex = (char)('A' + remainder % 10) + hex; decimal /= 16; } return hex; } // Function to convert decimal value to // equivalent HTML value string HTML(int decimal) { string html = to_string(decimal); html = "" + html + ";"; return html; } // ASCII lookup table void ASCIIlookuptable(char ch) { // Implicit typecasting converts the // character into it's equivalent ASCII int decimal = ch; cout << "Octal value: " << Octal(decimal) << endl; cout << "Decimal value: " << decimal << endl; cout << "Hexadecimal value: " << Hexadecimal(decimal) << endl; cout << "HTML value: " << HTML(decimal); } // Driver function int main() { char ch = '@'; ASCIIlookuptable(ch); return 0; }
Java
// Java implementation for ASCII table lookup import java.util.*; import java.lang.*; class GeeksforGeeks { // Function to convert decimal value to // equivalent octal value static int Octal(int decimal) { int octal = 0; String temp = ""; while (decimal > 0) { int remainder = decimal % 8; temp = remainder + temp; decimal /= 8; } for (int i = 0; i < temp.length(); i++) octal = (octal * 10) + (temp.charAt(i) - '0'); return octal; } // Function to convert decimal value to // equivalent hexadecimal value static String Hexadecimal(int decimal) { String hex = ""; while (decimal > 0) { int remainder = decimal % 16; if (remainder >= 0 && remainder <= 9) hex = remainder + hex; else hex = (char)('A' + remainder % 10) + hex; decimal /= 16; } return hex; } // Function to convert decimal value to // equivalent HTML value static String HTML(int decimal) { String html = ""; html = html + decimal; html = "" + html + ";"; return html; } // ASCII lookup table static void ASCIIlookuptable(char ch) { // Implicit typecasting converts the // character into it's equivalent ASCII int decimal = ch; System.out.println("Octal value: " + Octal(decimal)); System.out.println("Decimal value: " + decimal); System.out.println("Hexadecimal value: " + Hexadecimal(decimal)); System.out.println("HTML value: " + HTML(decimal)); } // driver function public static void main(String args[]) { char ch = '@'; ASCIIlookuptable(ch); } }
C#
// C# implementation for ASCII // table lookup using System; class GeeksforGeeks { // Function to convert decimal value to // equivalent octal value static int Octal(int decima) { int octal = 0; String temp = ""; while (decima > 0) { int remainder = decima % 8; temp = remainder + temp; decima /= 8; } for (int i = 0; i < temp.Length; i++) octal = (octal * 10) + (temp[i] - '0'); return octal; } // Function to convert decimal value // to equivalent hexadecimal value static String Hexadecimal(int decima) { String hex = ""; while (decima > 0) { int remainder = decima % 16; if (remainder >= 0 && remainder <= 9) hex = remainder + hex; else hex = (char)('A' + remainder % 10) + hex; decima /= 16; } return hex; } // Function to convert decimal // value to equivalent HTML value static String HTML(int decima) { String html = ""; html = html + decima; html = "" + html + ";"; return html; } // ASCII lookup table static void ASCIIlookuptable(char ch) { // Implicit typecasting converts the // character into it's equivalent ASCII int decima = ch; Console.WriteLine("Octal value: " + Octal(decima)); Console.WriteLine("Decimal value: " + decima); Console.WriteLine("Hexadecimal value: " + Hexadecimal(decima)); Console.Write("HTML value: " + HTML(decima)); } // Driver Code public static void Main() { char ch = '@'; ASCIIlookuptable(ch); } } // This code is contributed by nitin mittal.
Octal value: 100 Decimal value: 64 Hexadecimal value: 40 HTML value: @
Complejidad de tiempo: O(log 8 (Decimal)) , ya que estamos usando un bucle y en cada recorrido estamos decrementando N por división de piso de 8.
Espacio auxiliar: O(log 8 (Decimal)), ya que estamos usando espacio extra por la respuesta