ASCII编码介绍与学习总结

2022-09-28 16:26:25 浏览数 (1)

[TOC]

0x00 前言

描述:上个世纪60年代美国制定了一套字符编码,它就是ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。 它是现今最通用的单字节编码系统(第一个计算机领域通用的字符集),并等同于国际标准 ISO/IEC 646

标准 ASCII 字符表使用 7 位二进制数来表示所有的大写和小写字母,数字0到9,标点符号,以及在美式英语中使用的特殊控制字符等共有128个字符,它主要用于显示现代英语。

关键点: ASCII码中大写与小写转换的位关系值得记录(重点)。 大写字母对应的 ASCII 值第 6 位置 1 则变成对应的小写字母,反之亦然。 例如:大写字母 A 的二进制 ASCII 值是 0100 0001,对应的小写字母 a 的二进制则是 0110 0001此规则适用于所有大小写字母的相互转换(学到位操作符的时候,很有用)

0x01 ASCII字符表

在 Linux 系统上如何快速查看 ASCII 字符表:

代码语言:javascript复制
man ascii #<!--最小版本安装的可以字节安装man与ascii-->

WeiyiGeek.

十六进制转换表(Hexadecimal->Ascii),学习逆向的时候您是逃不掉这个得! 例如:1的hex的Ascll为0x31

WeiyiGeek.

Bin-Octal-Dec-Hex相互转换ASCLL

~~其中,ASCII 字符表上的数字 0~31 以及 127(共 33 个)分配给了控制字符,用于控制像打印机等一些外围设备:( 不可见 )

ASCII 字符表上的数字 32~126 分配给了能在键盘上找到的字符,当您查看或打印文档时就会出现:(可见)~~

代码语言:javascript复制
二进制	八进制	十进制	十六进制	缩写/字符	解释
00000000	0	0	0	NUL(null)	空字符 
00000001	1	1	1	SOH(start of headling)	标题开始
00000010	2	2	2	STX (start of text)	正文开始
00000011	3	3	3	ETX (end of text)	正文结束
00000100	4	4	4	EOT (end of transmission)	传输结束
00000101	5	5	5	ENQ (enquiry)	请求
00000110	6	6	6	ACK (acknowledge)	收到通知
00000111	7	7	7	BEL (bell)	响铃
00001000	10	8	8	BS (backspace)	退格
00001001	11	9	9	HT (horizontal tab)	水平制表符
00001010	12	10	0A 	LF (NL line feed, new line)	换行键
00001011	13	11	0B 	VT (vertical tab)	垂直制表符 
00001100	14	12	0C 	FF (NP form feed, new page)	换页键
00001101	15	13	0D 	CR (carriage return) 	回车键
00001110	16	14	0E 	SO (shift out)	不用切换
00001111	17	15	0F 	SI (shift in)	启用切换
00010000	20	16	10	DLE (data link escape) 	数据链路转义
00010001	21	17	11	DC1 (device control 1) 	设备控制1
00010010	22	18	12	DC2 (device control 2)	设备控制2
00010011	23	19	13	DC3 (device control 3) 	设备控制3
00010100	24	20	14	DC4 (device control 4)	设备控制4 
00010101	25	21	15	NAK (negative acknowledge) 	拒绝接收 
00010110	26	22	16	SYN (synchronous idle) 	同步空闲
00010111	27	23	17	ETB (end of trans. block)	传输块结束 
00011000	30	24	18	CAN (cancel) 	取消 
00011001	31	25	19	EM (end of medium)	介质中断 
00011010	32	26	1A	SUB (substitute)	替补
00011011	33	27	1B	ESC (escape) 	溢出
00011100	34	28	1C	FS (file separator) 	文件分割符
00011101	35	29	1D	GS (group separator) 	分组符
00011110	36	30	1E 	RS (record separator) 	记录分离符
00011111	37	31	1F	US (unit separator)	单元分隔符
00100000	40	32	20	(space)	空格 
00100001	41	33	21	!	
00100010	42	34	22	"	
00100011	43	35	23	#	
00100100	44	36	24	$	
00100101	45	37	25	%	
00100110	46	38	26	&	
00100111	47	39	27	'	
00101000	50	40	28	(	
00101001	51	41	29	)	
00101010	52	42	2A	*	
00101011	53	43	2B	 	
00101100	54	44	2C 	,	
00101101	55	45	2D	-	
00101110	56	46	2E 	.	
00101111	57	47	2F	/ 	
00110000	60	48	30	0	
00110001	61	49	31	1	
00110010	62	50	32	2	
00110011	63	51	33	3	
00110100	64	52	34	4	
00110101	65	53	35	5	
00110110	66	54	36	6	
00110111	67	55	37	7	
00111000	70	56	38	8	
00111001	71	57	39	9	
00111010	72	58	3A	: 	
00111011	73	59	3B	;	
00111100	74	60	3C	< 	
00111101	75	61	3D	=	
00111110	76	62	3E	> 	
00111111	77	63	3F 	?	
01000000	100	64	40	@ 	
01000001	101	65	41	A	
01000010	102	66	42	B 	
01000011	103	67	43	C	
01000100	104	68	44	D 	
01000101	105	69	45	E	
01000110	106	70	46	F	
01000111	107	71	47	G	
01001000	110	72	48	H 	
01001001	111	73	49	I	
01001010	112	74	4A	J 	
01001011	113	75	4B	K	
01001100	114	76	4C 	L 	
01001101	115	77	4D	M	
01001110	116	78	4E	N 	
01001111	117	79	4F	O	
01010000	120	80	50	P 	
01010001	121	81	51	Q	
01010010	122	82	52	R	
01010011	123	83	53	S	
01010100	124	84	54	T 	
01010101	125	85	55	U	
01010110	126	86	56	V 	
01010111	127	87	57	W	
01011000	130	88	58	X 	
01011001	131	89	59	Y	
01011010	132	90	5A	Z 	
01011011	133	91	5B	[ 	
01011100	134	92	5C		
01011101	135	93	5D	] 	
01011110	136	94	5E 	^	
01011111	137	95	5F	_	
01100000	140	96	60	` 	
01100001	141	97	61	a	
01100010	142	98	62	b 	
01100011	143	99	63	c 	
01100100	144	100	64	d	
01100101	145	101	65	e 	
01100110	146	102	66	f	
01100111	147	103	67	g 	
01101000	150	104	68	h	
01101001	151	105	69	i 	
01101010	152	106	6A	j	
01101011	153	107	6B	k 	
01101100	154	108	6C 	l	
01101101	155	109	6D 	m	
01101110	156	110	6E	n	
01101111	157	111	6F	o 	
01110000	160	112	70	p	
01110001	161	113	71	q 	
01110010	162	114	72	r	
01110011	163	115	73	s 	
01110100	164	116	74	t	
01110101	165	117	75	u	
01110110	166	118	76	v	
01110111	167	119	77	w 	
01111000	170	120	78	x	
01111001	171	121	79	y 	
01111010	172	122	7A 	z	
01111011	173	123	7B	{	
01111100	174	124	7C	|	
01111101	175	125	7D	}	
01111110	176	126	7E 	~	
01111111	177	127	7F 	DEL (delete)	删除
0x02 ASCII转换

javascript 描述:将字符转成ASCII码,将ASCLL转换成字符串;

代码语言:javascript复制
<script type="text/javascript">
      var test =new String("Hello,world!");
      var conStr = "";
      for (var i = 0; i < test.length; i  ){
        var str = test.charAt(i)   " >>>> "  test.charCodeAt(i);
        console.log(str);  //将字符转成十进制
          
        conStr  = String.fromCharCode(test.charCodeAt(i));          //输出我们输入的字符串
      }
      console.log("Ascii码转字符串:" conStr);
    
//String.fromCharCode(37);  //可将ascii的十进制变成字符
</script>

WeiyiGeek.

C语言

代码语言:javascript复制
#include <stdio.h>
//将字符转换成10(D),8(O),16(HEX)将数字转换成Ascii字符.
int main(void)
{
    printf("char = %c ,DEC  Ascii-num = %dn",67,'C');  //Dec 
    printf("char = %c ,HEX  Ascii-num = %dn",0x30,'0'); //HEX 
    printf("char = %c ,OCT  Ascii-num = %dn",070,'8');  //Oct 
    return 0;
}

WeiyiGeek.

0 人点赞