Ⅰ c语言编程输出结果的疑问
楼上各位有说的正确的,也有欠妥的,我总结一下:
首先,对于第一个结果可以肯定:你的程序和输出结果不符!
(1)如果你程序是对的:
第一个结果就是43,正常的10进制常量43赋值给c,又把c赋值给i,再以10进制形式输出i,也就是输出43了。
(2)如果想得到教材的输出结果,程序应为
c=043;i=c
printf("i=%d\n",i);
这里043表示8进制常量
其次,对于第二个结果,'\376'表示ASCII的8进制表示为376的字符,10进制为254,这时由于超过了127,因此用了2个Byte来表示,而系统对2Byte将会当成扩展ASCII字符集进行处理,所以如果用%c输出的话,会看到这么个汉字“”……,至于输出的-2是这样来的:
尽管(8进制)376=(2进制)011 111 110=(10进制)254
但从char型的c向int型的i赋值时,默认char只占一个Byte,所以只有后面8位赋值给了i,因此i的值只是11111110,又最高位是符号位,因而该值转换成10进制(除符号位外取反:10000001,再加1:10000010)得-2。
Ⅱ C语言中\376是什么意思
表示八进制数376
\ddd 1到3位八进制数所代表的字符,如\123,表示八进制数123.
Ⅲ c语言中"ab\\c\td\376"的长度是多少\376为什么是一个长度
"ab\\c\td\376"
a算一个长度; 长度= 1
b算一个长度; 长度= 2
\\算一个长度,输出为一个反斜杆 长度 = 3
c算一个长度; 长度 = 4
\t 算一个长度, \t表示一个制表符 长度 =5
d算一个长度 长度 =6
\376 算一个长度,\376是一个ASCII的字符,在ASCII表里表示 þ 这个字符
长度 = 7
用C语言输出这段文字 为 ab\c(这是一段空白,表示制表符)dþ
所以长度为7位
Ⅳ 马上要考C语言了,求教大神、、问题有下: 1.C语言中"\376"为什么代表图形字符"■"
\376 是8进制数。超出普通ASCII码范围的码,显示什么同 系统有关(显示窗的设置)。
"\t" 跳一次,等于按了1次Tab 键。"\t\t" 等于按了2次Tab 键。跳二次。
"\b\b" 等于按了2次 Backspace键。删去前2个字符。
得到的结果是float型或者是double,小数点后不一定要写6位。如果 %10.5lf 那就写5位。
%f %lf 输出默认6位。
Ⅳ 在c语言中 char a = '\376' 这个'\376'应该是一个字符吧 代表十进制的数是是怎么推来的,谢谢!!!
转义字符的规则
反斜杠接的后面可以接一个字符\a \b \n格式
还有
\41数字的,是按八进制来运算的
\xhh是按十六进制来运算的。
如上则是按八进制 (376)8 = (192+56 + 6)10 = ( 254)10
具体输出啥,你测试一下就知道了,要查ASIIC码表
Ⅵ c语言中376为什么对应x
x的asii码是120,输出字母用的是"%c"也就是输出1个字节。一个字节最多只能保存0-255共256个数。因此一个字节存储不下376,会溢出。实际这个字节保存的是376-256 = 120,也就是x的ascii码。因为字节数据最多只能保存0-255共256个数,到了256就会把高位溢出。因此,保存的就是120(256位第8位为1,溢出了)。注意我们说的字节的第i位,i是从0开始的。
Ⅶ 在C语言中\\\'abc\376有多少个字节
\\是一个字节——代表字符\的ascii码。
\'是一个字节——代表字符'的ascii码。
abc是三个字节——代表字符a、字符b、字符c的ascii码。
\376是一个字节——代表ascii码为8进制376的一个字符。
以上有6个字节。
不过c语言在保存如此形式的字符串时,最后还要添加一个字节0(相当于字符'\0')作为字符串的结尾标志。
连同此结尾标志,总共要占存储空间7个字节。
Ⅷ c语言中b='\376'是什么意思
将'\376'这个字符赋给b
'\376'表示十进制的数是 6×8º+7×8¹+3×8²=254
可以查Ascll表得■