leftimage for poohprod.ru

ASCII Chart in Matlab

In this article we have three goals: first, we’re going to develop an ASCII chart to understand instructions char and double in Matlab; second, we’re going to work with a simple ASCII conversion technique as an example of simple encoding, and third, we’re going to develop a rot13 method, which happens to be another encoding technique.

ASCII Character Set

ASCII stands for American Standard Code for Information Interchange. Computers can only understand binary numbers, so an ASCII code is the internal representation of a character such as 'z' or '4'. Matlab has two useful functions to work with them: char and double.

S = char(X) converts the array X that contains positive integers representing character codes into a Matlab

character array (the first 127 codes are ASCII). The actual characters displayed depend on the character set encoding for a given font. The result for any elements of X outside the range from 0 to 65535 is not defined (and may vary from platform to platform).

double(S) returns the double precision value for S.


We can create a printable ASCII chart or table in Matlab, like this:

for i = 32 : 63
str = [num2str(i)
' ' char(i) ' '...
num2str(i+32) ' ' char(i+32) ' '...
num2str(i+64) ' ' char(i+64)];
disp(str)

end


The resulting ASCII chart or table of equivalencies is:

32 64 96 `
33 ! 65 A 97 a
34 " 66 B 98 b
35 # 67 C 99 c
36 $ 68 D 100 d
37 % 69 E 101 e
38 & 70 F 102 f
39 ' 71 G 103 g
40 ( 72 H 104 h
41 ) 73 I 105 i
42 * 74 J 106 j
43 + 75 K 107 k
44 , 76 L 108 l
45 - 77 M 109 m
46 . 78 N 110 n
47 / 79 O 111 o
48 0 80 P 112 p
49 1 81 Q 113 q
50 2 82 R 114 r
51 3 83 S 115 s
52 4 84 T 116 t
53 5 85 U 117 u
54 6 86 V 118 v
55 7 87 W 119 w
56 8 88 X 120 x
57 9 89 Y 121 y
58 : 90 Z 122 z
59 ; 91 [ 123 {
60 < 92 \ 124 |
61 = 93 ] 125 }
62 > 94 ^ 126 ~
63 ? 95 _ 127 

ASCII Conversion / Encoding

ASCII codes are useful in the interchange of information between electronic devices, and they could be encrypted in some cases. Let’s play a little game... Let’s say that the IT department of Special International Decoders, Inc. is trying to decode intercepted messages. Senior decoders have determined that a particular company encodes messages by first converting all characters to their ASCII values and then reversing the string.

For example, consider ‘C3’. The ASCII values are 67 and 51, respectively.
Then reverse this to get string 15 76 as the coded message.

We’re going to write a program which reads a coded message and decodes it. We’re going to encode messages, too!

Let’s say that first we want to encode the sentence “Hello World”. We can do this:

% Initial message is a string
m = 'Hello World';
% Find the ASCII equivalent
n = double(m);
% Convert to string and flip it
encoded = fliplr(num2str(n))

The resulting string is

encoded =
001 801 411 111 78 23 111 801 801 101 27

Now, the second part:

% Take the encoded message and flip it
cf = fliplr(encoded);
% Find ASCII equivalents
n = str2num(cf);
% Convert to ASCII
decoded = char(n)


As an experiment on your own, try to decode this message...

911 111 411 411 111 901 111 611 23 611 111 011 23 44 121 79 001 111 611 23 511 611 411 79 611 511 23 101 411 711 611 711 201 23 101 401 611

What do you get? Remember, you have to enter a string as input, not a numerical vector. So you’ll use your decoding routine with something like encoded = ‘...’


ROT13

ROT-13 is an encoding easily decodable. It’s often used on usenet groups when someone wants to post a text that should not be retrieved through search engines, or for posting things that might offend some readers, or spoilers. It replaces each English letter with the one 13 places forward or back along the alphabet. A major advantage of rot13 is that it is self-inverse, so the same code can be used for encoding and decoding.


This is a possible approach in Matlab:

% Place your string here
m = 'your message here'
% Find indices of letters that need a +13
ix1 = find(65 <= m & m <= 77 | 97 <= m & m <= 109);
% Find indices of letters that need a -13
ix2 = find(78 <= m & m <= 90 | 110 <= m & m <= 122);

% Replace letters
m(ix1) = m(ix1) + 13;
m(ix2) = m(ix2) - 13;

% Display encoding
encoded = char(m)


The result in this case is:

encoded =
lbhe zrffntr urer


From 'ASCII Chart' to home

From 'ASCII Chart' to Fun!

Top

Concatenate Strings

Palindromes




footer for matlab page




Related pages


how to correct power factor with capacitorscontinue matlabevaluate integral calculatormatlab regressiondefinite calculatorbindecgenerate random number matlabrc circuit formulassolve system of nonlinear equations matlabloan payment spreadsheetdrawing circle in matlabcontinuously compounded calculatorestimated scrap value of vehiclecontinuous compound calculatorhow do you solve piecewise functionsmatlab tutorial for beginnersbinary to decimal conversion exampleplot arrow matlabbinary code letter chartsum of arithmetic sequence examplesbmi excel formulamaking a piecewise function continuouspolynomial in matlabplotting matrix in matlabascii and binary tablebinary number to hexadecimaldouble integral calculator onlineconvert decimal to binary codeusing solve in matlabmatrix laboratorycompound interest problem solverleast squares polynomialhow to correct power factor with capacitorstransient rc circuit analysismatlab deal functiontrapezoidal integration matlabwhat is gui in matlabhow do i convert binary to decimalmatlab gui exampleshow to fit an exponential curve in matlabmatlab gaussian eliminationbinary polynomial divisioncartesian to polar conversionmatlab draw rectanglematlab gaussian functiongauss jordan elimination algorithmrc circuit problems with solutionmaclaurin series expansionsquadratic equation calcohm's law pie chartinterpolation lagrangedurer magic squaresawtooth graphgraphics in matlabcalculating fibonacci numbersmatlab interp2matriks gauss jordanmatlab gui inputbinary converter to octalconvert to octalnax meaningpiecewise function graphsdepreciation calculator computerspecial characters ascii valuessolve system of equations matlabdecimal to binary conversion exampleformula for calculating depreciationmatlab for loop syntaxgcd flowchartexpansion of cosxcalculate permutations and combinationshow to plot a graph on matlabpascal triangle in c using arraymatlab plotting functionspythagoras theorem solvercalculating square feet from inches