数据和C

整数就是没有小数部分的数,在C中小数点永远不会出现在整数中。例如2,-24,2456都是整数,整数以二进制存储,例如7的二进制表示为111,在8位的字节中存储它的前5位为0,将后3位置1.

数据和C

 

浮点数即加了小数点的数. 2.75,3.16E7,7.00,2e-8都是浮点数,

数据和C

 

区别:

浮点数可以表示比整数范围大得多的数。

对于一些算术运算,浮点数会损失更多的精度

浮点数的计算会慢于整数,不过,已经开发出专门处理浮点运算的微处理器

 

/*以十进制8进制16时制输出100*/



#include <stdio.h>



int main(void)

{

	int x =100;

	printf("dec =%d octal =%o hex =%x \n",x,x,x);

	printf("dec =%d octal =%#o hex =%#x \n",x,x,x);

}





#include <stdio.h>

#include <inttypes.h>

int main(void)

{

	int16_t me16;

	me16 =4593;



	printf("First assume int16_t is short : me16=%hd size=%zd\n",me16,sizeof(int16_t));

	

}

 

 

#include <stdio.h>



int main(void)

{

	int i = 2147483647;

	unsigned int j = 4294967295;



	printf("%d,%d,%d\n",i,i+1,i+2);

	printf("%u,%u,%u\n",j,j+1,j+2);



	return 0;

}

 

 

结果:

2147483647,-2147483648,-2147483647

4294967295,0,1

 

Note:

这个例子是基于int值是4字节的情况,注意无符号数的取值范围0-4294967295,所以无符号的减法操作时没有负数

 

Char 类型

#include <stdio.h>

int main(void)

{

	char grade ='A';

	char grade1 =65;

	char testChar ='ABCD';

	printf("%c,%c,%c \a\n",grade,grade1,testChar);

	return 0;

}

结果:

A A D

 

Char 类型用于存储字母和标点符号之类的字符。但是在技术实现上char类型却是整数类型,这是因为char类型实际存储的是数字而不是字符。为了处理字符,计算机使用一种数字编码,用特定的整数表示特定的字符。所以可以用char grade1 =65;给字符赋值。

在int类型为32位及char 类型为8位的ASCII系统中 char grade =’B’意味着’B’作为数值66存储在一个8位单元中。利用字符常量这个特性,可以定义字符常量’ABCD’,将这4个独立的8位ASCCI码存储一个32位单元中。然而,如果把这个字符常量赋给一个char变量,那么只有最后8位会起作用,因此变量值为D.

 


 

你可能感兴趣的:(数据)