c语言问题,请高手帮一下忙,谢了! 1、\ddd有什么意义 2、65是不是字符型常量 3、\007的十进制值怎样计算
3个回答
展开全部
1.带有反斜杠的字符是转义字符,即将“\”后面的字符转换成另外的意义。“\ddd”是代表1到3位八进制数所代表的字符,比如“\101”代表ASCII码(八进制数)为101(十进制为65)的字符'A'。其他的同理转换,注意,三个d都是数字,都可以为0。
补充一下,“\xdd”代表1到2位十六进制数所代表的字符,x必须就是x,不能是字符,剩下的两个d都是可为0的数字,如“\x41”代表ASCII码(十六进制数)为41(十进制为65)的字符'A'。
不过要注意,“\0”或“\000”是代表ASCII码为0的控制字符,即空操作字符。
2. 65是个数,一般认为是十进制,若你把它赋给一个字符型变量,如
char a=65;
则此时字符型变量“a”就代表字符'A'(ASCII码对应过来的)
3. 八进制转换为十进制:如上面提到的“\101”中的八进制数101,转换为十进制就是:
1*(8^2)+0*(8^1)+1*(8^0)=65
即“百位”数字乘以8的2次幂,加上“十位”数字乘以8的1次幂,加上“个位”数字乘以8的0次幂,便得到对应的十进制数。若还有“千位”、“万位”则依此类推了。
你这里的“\007”中的八进制数007即就代表十进制的7了。注意,八进制数里的数字只有0~7这八个数字,不能出现数字8,否则就不是八进制数了。
同理,十六进制转换为十进制:如上面提到的“\x41”中的十六进制数41,转换为十进制就是:
4*(16^1)+1*(16^0)=65
如遇到十六进制中独有的A、B、C、D、E、F,转换的时候把它们依次换成10、11、12、13、14、15就可以了,如十六进制数1C3F:
1*(16^3)+12*(16^2)+3*(16^1)+15*(16^0)=7456
补充一下,“\xdd”代表1到2位十六进制数所代表的字符,x必须就是x,不能是字符,剩下的两个d都是可为0的数字,如“\x41”代表ASCII码(十六进制数)为41(十进制为65)的字符'A'。
不过要注意,“\0”或“\000”是代表ASCII码为0的控制字符,即空操作字符。
2. 65是个数,一般认为是十进制,若你把它赋给一个字符型变量,如
char a=65;
则此时字符型变量“a”就代表字符'A'(ASCII码对应过来的)
3. 八进制转换为十进制:如上面提到的“\101”中的八进制数101,转换为十进制就是:
1*(8^2)+0*(8^1)+1*(8^0)=65
即“百位”数字乘以8的2次幂,加上“十位”数字乘以8的1次幂,加上“个位”数字乘以8的0次幂,便得到对应的十进制数。若还有“千位”、“万位”则依此类推了。
你这里的“\007”中的八进制数007即就代表十进制的7了。注意,八进制数里的数字只有0~7这八个数字,不能出现数字8,否则就不是八进制数了。
同理,十六进制转换为十进制:如上面提到的“\x41”中的十六进制数41,转换为十进制就是:
4*(16^1)+1*(16^0)=65
如遇到十六进制中独有的A、B、C、D、E、F,转换的时候把它们依次换成10、11、12、13、14、15就可以了,如十六进制数1C3F:
1*(16^3)+12*(16^2)+3*(16^1)+15*(16^0)=7456
展开全部
\ddd是ASCII字符,范围在0 -- 127之间
65是是字符常量,是'A'的ASCII码
\007是8进制数,转换为10进制数还是7,是ASCII码的BELL(响铃)
65是是字符常量,是'A'的ASCII码
\007是8进制数,转换为10进制数还是7,是ASCII码的BELL(响铃)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
\ddd指示ddd为数据,不是字符。\是转义标志,一般用在字符串中。如\007指数据7,如果直接写7,则数据是7的ascii码值(大概是37,记不清了)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询