从C到Java---2

本文围绕C语言展开,介绍了浮点数取整方法,long long和__int64的特点与输出格式。阐述了C语言基本类型,如char、int等的长度、占位符及取值范围。还讲解了格式化输入输出函数的使用,包括占位符的正确运用及精度问题。

浮点数运算会有误差,所以用floor()函数取整数时,一般采用
计算出的浮点数+0.5 的结果在进行取整

long long 的字符长度是int型的两倍,现在int型一般为32位,所以long long是64位的,能支持的最大数为2^63 -1。
在VC6.0里并不支持long long,它使用的是__int64,具有相似的效果
long long 输出格式为%lld(小写的 L)
__int64 输出格式为 %I64d(大写的 i)

————基本类型:

C语言的基本类型:
char,int,float,double,long,short,signed,unsigned,void
计算类型的长度:sizeof(“类型”),返回int类型的长度值
占位符:%d
printf();

输出为:
short类型的长度为:2
int类型的长度为:4
long类型的长度为:4 (Java中为8 ),C99标准规定:long 类型的规定,不小于整型
char类型的长度为:1(Java中为2)
float类型的长度为:4
double类型的长度为:8

C语言中没有 byte,boolean(0 表示false,非0为true)
signed:-128~127
unsigned:0~255
void:无类型,代表任意类型

stdio.h stdlib.h
int main(){
printf(“short类型的长度为:%d\n”,sizeof (short));
printf(“int类型的长度为:%d\n”,sizeof (int));
printf(“long类型的长度为:%d\n”,sizeof (long));
printf(“char类型的长度为:%d\n”,sizeof (char));
printf(“float类型的长度为:%d\n”,sizeof (float));
printf(“double类型的长度为:%d\n”,sizeof (double));
if(0){
printf(“0 IS TRUE.\n”);
}else{
printf(“0 IS FALSE.\n”);
}

if(-1){
    printf("-1 IS TRUE.\n");
}else{
    printf("-1 IS FALSE.\n");       
}
system("pause");
return 0;

}

————–格式化输出

输出函数
printf();
%d int
%ld long int
%c char
%f float
%u unsigned
%hd short
%lf double
%x 以16进制输出int or long int or short int
%o 八进制输出
%s 字符串
如果占位符错误使用,可能导致精度丢失
c语言中默认保留6位小数
可以修改保留位数: 如 %.4f ,%后面加上.和数字

main(){
char c=’a’;
int i=12345678;
long l=123456789;
float f=3.1415;
double d=3.141592654;

printf("c==%c\n",c);
printf("i==%d\n",i);
printf("l==%ld\n",l);
printf("f==%.4f\n",f);
printf("d==%.10lf\n",d);

char cArray[] = {'哈','B'} ;//C语言的数组[]只能写在变量后面,一般在c中用char[]表示字符串 
printf("输出cArrray的内存地址为:%#x\n",&cArray);//地址是一个16进制; &cArray取得数组地址; 加# 号在显示时加上0x 
printf("cArray以String方式输出:%s\n",cArray);//这里输出:AB 
printf("d的地址为:%x\n",&d);
char* text="I love you!";
printf("text的内容为:%s\n",text);//使用指针输出字符串 
system("pause");

}

———-格式化输入
/*
scanf(“占位符”,内存地址);
%d int
%ld long int
%c char
%f float
%u unsigned
%hd short
%lf double
%x 以16进制输出int or long int or short int
%o 八进制输出
%s 字符串
*/
main(){
int i;
printf(“请输入一个int数字:\n”);
scanf(“%d”,&i);
printf(“输入的i为:%d\n”,i);
//输入 ,数组是一块连续的内存空间, ‘\0’ 代表结束
char cArray[] = {‘H’,’E’,’L’,’L’,’O’,’W’,’O’,’R’,’L’,’D’,’\0’,’X’};//如果有中文,输出乱码
//输出
int j;//在外面定义字段
for(j=0;j<5;j++){//c语言for中不能定义字段
printf(“cArray[%d]==%c\n”,j,cArray[j]);
}
printf(“以String方式输出:%s\n”,cArray);
printf(“请输入一个Stirng:\n”);
//char cArray[5];
scanf(“%s”,&cArray);
printf(“cArray:%s\n”,cArray);
system(“pause”);
}

——-取值范围:
在#include存有各个类型的最大值和最小值
CHAR_MIN       char的最小值
SCHAR_MAX      signed char 最大值
SCHAR_MIN       signed char 最小值
UCHAR_MAX      unsigned char 最大值
SHRT_MAX       short 最大值
SHRT_MIN       short 最小值
USHRT_MAX      unsigned short 最大值
INT_MAX       int 最大值
INT_MIN        int 最小值
UINT_MAX       unsigned int 最大值
UINT_MIN       unsigned int 最小值
LONG_MAX      long最大值
LONG_MIN       long最小值
ULONG_MAX      unsigned long 最大值
FLT_MANT_DIG    float 类型的尾数
FLT_DIG        float 类型的最少有效数字位数
FLT_MIN_10_EXP   带有全部有效数的float类型的负指数的最小值(以10为底)
FLT_MAX_10_EXP    float类型的正指数的最大值(以10为底)
FLT_MIN        保留全部精度的float类型正数最小值
FLT_MAX        float类型正数最大值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值