C语言:操作符复习笔记

本文详细介绍了浮点数12.5转换为二进制的过程,以及二进制与十六进制之间的转换。同时,讲解了地址的存放方式、后置++与前置++的区别,并通过示例展示了逻辑运算符(&&、||)的用法,以及位运算符(&、|、^、~、<<、>>)的应用。此外,还提到了整数在内存中的表示形式(原码、反码、补码)及位运算在编程中的实用技巧。
摘要由CSDN通过智能技术生成

float类型(32位)

进制转换:float转二进制

**** > 12.5——>1100.1 ****

12——>1100
0.5——>2^-1

举例说明

float型转二进制
二进制转十六进制
二进制转十六进制
地址的存放
地址的存放
后置++
先把i取出来后再赋值给j 然后i本身自增1
1.下列代码打印结果为11,10

int i=10;
int j=i++printf("%d %d",i,j);

前置++
i先自增1然后再赋值给j
2.下列代码打印结果为11,11

int i=10;
int j=++i;

&&(且)同真则为真
| | (或)有一真则为真

经典例题:

int a=1;
int b=0;
int c=0;
if(a++ && b++ && c++)
{
    printf("true\n");
}
else
{
  printf("false\n");
 }
 printf("%d,%d,%d\n",a,b,c);

输出为 false
2,1,0
例题
表达式1 | | 表达式2 表达式1若为真表达式2不计算 此时表达式1 | |表达式2 也一定为真
~按位取反
11 0000 1011
~11 1111 0100

两个数之间 &按位与 |按位或 ^按位异或
11 0000 1011
13 0000 1101

11&13 0000 1001(有一个0则为0)
x&=x-1
x取1 x-1为0 此结果为0 此表达式表达为丢弃最右边的1

11 | 13 0000 1111 (有一个1则为1)
11^ 13 0000 0110(一样的为0 不一样的为1)

<<(按位左移) >>(按位右移)
例题
11<<1(按位左移一位) 000 1011 0
右补0 相当于112^1
11<<2(按位左移两位) 00 1011 00
右补两个0 相当于11
2^2

11>>1(按位右移1位) 0 0000 101
左移一位左边补符号位 0表示正数 1表示负数
在逻辑运算中若无符号位直接补0
-1补完还是-1

整数的二进制表示有:原码 反码 补码
存储到内存的是补码
反码 符号位不变 其余按位取反~
补码 原码+1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值