c语言怎么将数据转为字节,C语言中数据的强制转换

数据的强制转换分为两种:1.隐性转换

2.显性转换

以下为数据类型及其所占字节:

数据类型

bool:1字节。0,1

int :4字节

char:1字节

float:4字节

double:8字节

short:2字节

long:4字节

long long :8字节

sizeof();一般用此函数求的数据类型的长度如:sizeof(int)=4;

转换一般由低转换到高。

1.关于隐性转换

如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,即把赋值号右边的类型换成左边的类型。具体规定如下:

1) 实型赋予整型,舍去小数部分。前面的例子已经说明了这种情况。

2) 整型赋予实型,数值不变,但将以浮点形式存放,即增加小数部分(小数部分的值为0)。

3)

字符型赋予整型,由于字符型为一个字节,而整型为二个字节,故将字符的ASCII码值放到整型量的低八位中,高八位为0。整型赋予字符型,只把低八位赋予字符量

如:

【1】float a=0;

int b=1,c=1;

a=b+c;

结果:2.000000

将b+c的结果转换成浮点型

【2】float b=1.8;

int a=0,c=1;

a=b+c;

运行结果:a=2;

此时把整形的c先转化成浮点型的数据与b进行运算,再把浮点型的数舍去小数部分转化成整形;

【3】

char a='a';

int b=65;

printf("%c%d",b,a);

结果:97A

将整形b转化成字符型对应的ascii码的字符为A,将字符型a 转化成整形对应‘a’的ascii码为65;

2.显性转化:

【1】

int a=2,b=0,c=5;

float c=3.2,d=4.7,e=0;

b=(int)(c+d);

结果:b=7(舍尾)

将c+d的结果强转成整形赋给b

【2】

int a=2,b=0,c=5;

float c=3.2,d=4.7,e=0;

e=(float)c/a;

e=2.500000;先将c强制转化成整形,与a运算

若e=c/a;此时的结果为2.000000;因为c与a都为整形,整形间的运算结果为整形;

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值