编程小白学习C语言基础篇——操作符①

操作符的分类:

算术操作符: + - * / %
移位操作符: << >>      移动的是二进制位
位操作符: & | ^            二进制位进行计算
赋值操作符: = += -= *= /= %= <<= >>= &= |= ^=
单目操作符: !、 ++ -- & * + - ~ sizeof
关系操作符: > >= < <= == !=
逻辑操作符: && ||
条件操作符: ? :
逗号表达式: ,
下标引⽤: [  ]
函数调⽤: (  )

数的进制

其实我们经常能听到2进制、8进制、10进制、16进制这样的讲法是数值的不同的表示形式。
比如数值15的各种进制的表示形式:
15的2进制:1111
15的8进制:17
15的10进制:15
15的16进制:F

进制间的转换          15的2进制: 1 1 1 1 转化 1*2**3+1*2**2+1*2**1+1*2**0=8+4+2+1=15

10进制中满10进1

10进制的数字每⼀位都是0~9的数字组成

其实⼆进制也是⼀样的

2进制中满2进1

2进制的数字每⼀位都是0~1的数字组成

特别的16进制是1 2 3 4 5 6 7 8 9 A B C D E F

数字进制转换

其实10进制的123表⽰的值是⼀百⼆⼗三,为什么是这个值呢?其实10进制的每⼀位是权重的
10进制的数字从右向左是个位、⼗位、百位....,分别每⼀位的权重是 10**0 , 10**1 , 10**2 ...

权重加和

10进制转2进制

整数二进制的三种表示形式

原码、反码、补码
整数的2进制表示方法有三种,即原码、反码和补码

有符号整数的三种表示方法均有符号位和数值位两部分,2进制序列中,最⾼位的1位是被当做符号

位,剩余的都是数值位。

符号位都是用0表示“正”,1表示“负”。

正整数的原、反、补码都相同。

负整数的三种表示方法各不相同。

原码:直接将数值按照正负数的形式翻译成⼆进制得到的就是原码。

反码:将原码的符号位不变,其他位依次按位取反就可以得到反码。

补码:反码+1就得到补码。

反码得到原码也是可以使用:取反,+1的操作。

移位操作符

<<左移操作符

>>右移操作符

移位操作符对象只能是整数,移动的是存储在内存中的二进制位!

左移操作符

int main()
{
    int a = 10;
    int b = a<<1;

    printf("b = %d\n",b);
    printf("a = %d\n",a);
    
    return 0 ;
}

移动的是存储在内存中的二进制位!!!但输出的还是十进制!

10的2进制写法是00001010

移动一位后         00010100    转换为10进制对应的即为 20

左边丢一位,右边补一位

右移操作符

右移操作分为两种:

1.逻辑右移:左边0填充,右边丢弃

2.算术右移:左边用原该值的符号位填充,右边丢弃

移位操作符不要移动负数位,这是标准未定义的行为。

位移操作符& | ^     

首先要区别的在逻辑运算中的 &&(逻辑与)、| | (逻辑或) 这类操作符判断的是 真假问题

此处的 按位与 按位或 是对补码的二进制位进行的计算

&按位与     对应的2进制位只要有0都为0,两个同时为1才为1

| 按位或     对应的2进制位只要有1都为1,两个同时为0才为0

^按位异或  对应的2进制位相同为0相异为1

~按位取反   对应的2进制位取相反

操作符②尽请期待

道阻且长,编程学习之路漫漫,行则将至。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值