数学运算和ascii可以说没多少关系
ascii主要是和屏幕显示/打印相关
0011是内存/硬盘中存储的形式(通常可能要补全8位成为一个字节),
要在屏幕上显示,需要知道用的什么编码,最常见的是ascii编码,然后再去字符集里找到对应的二维点阵,结合字体信息,显示到屏幕上
内存0011的十进制是3,是数字,是参与计算的类型,
00110011十进制是是51,ascii对应字符'3'
前者是数字3,后者是数字51
两者其实没有任何关系
ASCII码是对字符进行编码的代码,使计算机可以正确的识别每一个字母,对于大写字母是从65开始,根据字母表的顺序依次往后排,比如字母A对应的ASCII码就是65,B就是66;小写字母从97开始,按字母表顺序依次往后排,同一个字母的大小写的ASCII码总是相差32.
十进制就是我们经常用的数字进制,从0到9,之后进1,变成10;
二进制就是计算机辨别数字的进制,遇到2就进一,比如说01增加一就变成10,此时的10相当于十进制的2.
E就是A后4位,也就是01000001+401000001+100010000101。
ASCII是美国制定的一个关于用二进制数表示字符的标准,相当于ISO或者GB。ASCII是一套基于拉丁字母的字符编码,共收录了 128 个字符,用一个字节就可以存储,它等同于国际标准 ISO/IEC 646。
ASCII 规范于 1967 年第一次发布,最后一次更新是在 1986 年,包含了 33 个控制字符(具有某些特殊功能但是无法显示的字符)和 95 个可显示字符。
扩展资料:
注意事项:
ASCII码表、ASCII码、字符编码、ASCII转换、ASCII码对照表,请使用Ctrl+F查找你要找的字符的十进制以及转义字符即可。
ASCII的33个字符多数都已是陈废的控制字符,控制字符的用途主要是用来操控已经处理过的文字,在33个字符之外的是95个可显示的字符,包含用键盘敲下空白键所产生的空白字符也算1个可显示字符(显示为空白)。
参考资料来源:百度百科-ASCII
ascii码用来代表字符(控制字符和打印字符),每个字符通过一个数值来表示,这个数值也就是通常所说的ascii码;
进制为实际数值大小表示方式,几进制就是逢几进一。
char
ch='c';
int
i=ch;
那i的值就是99。
每个ascii码对应着一个数值,但不能说用ascii码去表示数字,想表示可以用define.
如图。
所谓的ASCII和16进制都只是概念上的东西,在计算机中通通是二进制,转换应该是输出的转换,同样是一个数,在计算机内存中表示是一样的,只是输出不一样ASCII是针对字符的编码,几乎是键盘上的字符的编码。
数学的计算方法:
主条目:进制转换
十进制转十六进制
采余数定理分解,例如将487710转成十六进制:
4877÷16=304....13(D)
304÷16=19....0
19÷16=1....3
1÷16=0....1
这样就计到487710=130D16
如果是ascii码表内的符号值,那么ascii值本身就可以认为是
16进制的(因为进制只是给人看的,单片机只有2进制,没有ascii
和
hex
之分),但如果是hex值,经过ascii发送后,需要接收解出数值,那么可以用这个函数:
uchar
ascii_tohex(uchar
ascii_data)
//ascii
转
hex
函数
{
uchar
hex_data=0;
//定义
hex变量存储转换结果
if(ascii_data='0'
ascii_data='9')
hex_data=ascii_data-'0';
//若
转换内容为
字符'0-9',则转成对应数字0-9
else
if(ascii_data='a'
ascii_data='f')
hex_data=ascii_data-'a'+10;
//若
转换内容为
字符'a-f',则转成数字10-15
else
if(ascii_data='a'
ascii_data='f')
hex_data=ascii_data-'a'+10;
//若
转换内容为
字符'a-f',则转成数字10-15
return
hex_data;
//返回转换结果,非以上字符,不在hex(0-f)范围内,默认0
}//