请用简单易懂的方法说明 ASCII码如何运算?我附的图第四题答案我看不懂
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请用简单易懂的方法说明 ASCII码如何运算?我附的图第四题答案我看不懂相关的知识,希望对你有一定的参考价值。
每一个字母都有特定的ASCII码与之对应。比如说:
字母A,ASCII码的值是65,转换成二进制就是01000001。我们可以验证一下,前面那个1的权重是2^6,后面那个1的权重是2^0,所以01000001转换成十进制就是1*2^6+1*2^0=65,是正确的。
字母B,ASCII码的值是66,转换成二进制就是01000010。
以此类推,字母E,ASCII的值是69,转换成二进制就是01000101。
那么答案里面为什么是01000001加上四个00000001呢,这是因为00000001换成十进制就是1,相当于加了四个1,而字母A到字母E正好差了4,所以答案那样写也是正确的。
至于如何运算ASCII,方法只有记住对应的十进制,然后转成二进制。不是所有的十进制都要记住,比如说字母A是65,那么就可以推出其他的大写字母,而字母a则是97,这样又能推出小写字母。所以,记住一些关键字符的ASCII码就好了。
拓展资料:
ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。
请注意,ASCII是American Standard Code for Information Interchange缩写,而不是ASCⅡ(罗马数字2),有很多人在这个地方产生误解。
参考资料:百度百科—ASCII码
参考技术A 挺好理解的啊。首先,由于电脑里,所有的数据在存储和运算时都要使用二进制数表示,所以像A、B、C等等这些也是一样的,这样带来的问题就是,你需要制定一个 数字-字符 对照表,这就叫编码,比如,将65(十进制)对应为字母 A。而为了与别人通讯时,你发送个65,别人也会翻译成 A 而不是别的,所以有了统一的对照表,这就是 ASCII 标准码表。
其次,编码当然要有一定的顺序,这样方便使用和记忆,字母是按照 A-Z 的顺序排序的,65 代表 A,那么相邻的下一个 B 就是 66,依次类推,那么 E 与 A 间隔 4 个 就是 65+4 = 69.
69 是十进制,转换成二进制数 就是 01000101。
如果以二进制来进行计算的话,A 的 二进制表示为 01000001,间隔 4 个,将 4 转换成2进制是 00000100 ,那么
65 + 4 = 69 (十进制计算)
01000001 + 100 = 01000101 (二进制计算)追问
如果以二进制来进行计算的话,A 的 二进制表示为 01000001,间隔 4 个,将 4 转换成2进制是 00000100 ,那么
65 + 4 = 69 (十进制计算)
01000001 + 00000100 = 01000101 (二进制计算)
如果不知道二进制怎么加的,其实也简单,十进制是逢十进1,二进制就是逢2进1。
如果不知道 十进制 是怎么 转换成 2进制 的,话说……这就不是答题,而是教学了。
比如字符 A 的 acsii 码就是规定为 65,字符 B 的 ascii 码就是规定为 66。
这个题中需要掌握的其实是二制运算:
用 A 的 ascii 码加上 4 ,也就是二进制的:01000001 + 100 = 01000101
所以正确答案是 C追问
为什么加100?
4 转换为二进制就是 100
你的问题还是不会二进制
腾讯面试算法题
题目描述:
如何将一长串字符串里的小写字母转换成大写的。
注:要求不通过比较
思路:比较运算被限制住,那我们就试着通过逻辑运算来实现。
我们知道,a~z的ascii码:97~122 也就是:1100001~1111010
A~Z的ascii码:65~90 也就是:100 0001~1011010
可见大小写字母的二进制表示差异所在是第6个位,那么我们只要右移5位,使它编程第1位,再通过与运算判断第1位是0还是1,
这样也就知道是否是大小写了。
代码如下:
#include<iostream> using namespace std; int main() { char p[]="abABcdefCDEFGghigklomnopkxyz"; int len=strlen(p); for(int i=0;i<len;i++) { if(p[i]>>5&1) { //右移5个位,此时若是小写字母,则最右边一位为1,执行if内部语句 cout<<"Small Letter"<<endl; p[i]=p[i]-32; } } cout<<p<<endl; getchar(); return 0; }
以上是关于请用简单易懂的方法说明 ASCII码如何运算?我附的图第四题答案我看不懂的主要内容,如果未能解决你的问题,请参考以下文章