c语言负数左移右移_C语言编程(四)

知识点1【数据类型转换】

1、自动类型转换

dd945ca41a457ab807143abb4d0b2d74.png

案例:有符号 和无符号的转换

void test02()
{
    
	int data1 = -20;
	unsigned int data2 = 10;
 //有符号data1和无符号data2参加计算的时候
 //会先将data1转换成无符号(-20的补码很大的正数) 
 //很大的数 + 10 必然 >0
 if(data1+data2 > 0)
 {
    
 printf(">0n");
 }
 else if(data1+data2<0)
 {
    
 printf("<0n");
 }
}
运行结果:>0
案例:int double的转换
void test03()
{
    
	int data1 = 10;
 printf("%dn",sizeof(data1+3.14));//8字节
}
int main(int argc,char *argv[])
{
    
 test03();
 return 0;
}

案例:char 和short的类型转换

void test04()
{
    
	char ch = 'a';
	short data = 20;
 
 //由于char short自身字节数 过小 很容易溢出
 //所以 只要char short参加运算 都会将自身转换成int
 printf("%dn", sizeof(ch + ch));//4
 printf("%dn", sizeof(ch + data));//4
 printf("%dn", sizeof(data + data));//4
}
案例:强制类型转换
void test05()
{
    
	float x = 3.14f;
	int j = 0;
 //强制 类型转换 只是临时的转换 当前语句有效 在后面的语句中不会更改x的值
	j = (int)x;
 printf("j = %d,x = %fn", j, x);//
}
int main(int argc,char *argv[])
{
    
 test05();
 return 0;

运行结果:

77f4ab63ceaff1fb4b2245d367e0efef.png

知识点2【运算符】

1、算术运算符

a /b (a,b可以为整数,也可以为浮点数 如果a b为整数 表示取整 如果 a b只要有一个为浮点数 则表示除法运算) 取整 %取余 必须为整数

void test06()
{
    
 printf("%dn", 5/2);//取整 2
 printf("%dn", 5%2);//余数 1
}
int main(int argc,char *argv[])
{
    
 test06();
 return 0;
}

运行结果:

4b26415a8d3ce5761f6b91cbc4c4a6b4.png

案例:键盘

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值