'#'的意思一样。可以用来将字符串形式存储的数字(如4251)一个一个转化成数字,原理就是字符'4''2''5''1'跟'0'在ASCII中的值得差就是4、5、2、1,再用一个变量number,number
=
character
-
'0'
+
10
*
number,就能用number存储四千五百二十一了。
只是用原码表示的时候0有两种表示(假设用4字节表示)
+0: 00000000 00000000 00000000 00000000
-0: 10000000 00000000 00000000 00000000
因为原码的最高为符号位:0表示正,1表示负
而C语言的编译其里面0都是用补码表示的
补码的0只有一种表示:
00000000 00000000 00000000 00000000
你可以这样测试下
void main()
{
int a=-0
int b=+0
}
看看a和b的内存表示,全部是0
关于原码,反码,补码如果不懂可以自己找找资料。
根据不同的上下文,有不同的含义。1.各个类型的值
int a = 0
float b = 0
double c = 0
char d = 0
int *p = 0
2.
虽然可以像上述那么写,其实编译的时候,可能就会提示(warning)
从int型转成xx型
所以不指定类型的时候,默认为int型
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)