0
点赞
收藏
分享

微信扫一扫

deeplearning with pytorch(二)

外贸达人小峻先森 03-05 15:30 阅读 5
c语言

一、操作符的分类

• 算术操作符: + 、- 、* 、/ 、%
• 移位操作符:<<  >> 
• 位操作符: &  |  ^ 
• 赋值操作符: = 、+= 、 -= 、 *= 、 /= 、%= 、<<= 、>>= 、&= 、|= 、^= 
• 单⽬操作符: !、++、--、&、*、+、-、~ 、sizeof、(类型)
• 关系操作符: > 、>= 、< 、<= 、 == 、 != 
• 逻辑操作符: && 、||
• 条件操作符: ?   :
• 逗号表达式: ,
• 下标引用: []
• 函数调用: ()

• 结构成员访问: .  、->

 二、二进制和进制转换

所有的进制都是数值的不同表现形式。

十六进制一般写成0x什么,如15:0xF

八进制一般写成0什么,如15:017

2.1二进制转十进制

        十进制中满10进1,二进制中满2进1。

十进制中,例如123每一位是有权重的,从右到左依次是个位数,十位数,百位数,每一位的权重分别是10^0,10^1,10^2。

二进制与十进制是类似的,权重依次是2^0,2^1,2^2.....

二进制例如1101

它的十进制算出来是13。

2.2十进制转二进制

2.3二进制转八进制

八进制数的每一位是0-7,0-1写成二进制的时候需要三位就足够了,所以三位二进制组成一位八进制的数。

如二进制的01101011,换成八进制0153

2.4二进制转十六进制

        十六进制的每一位是0-9,a-f,各自写成二进制,只需要四位二进制位。

如二进制的01101011,转换成十六进制0x6b,十六进制写的时候前面要加0x。

三、原码、反码、补码

整数的2进制表示方法有三种,即原码、反码和补码。
有符号整数的三种表示方法均有符号位和数值位两部分,2进制序列中,最高位的1位是被当做符号
位,剩余的都是数值位。符号位都是用0表示“正”,用1表示“负”。

正数:正数的原码,反码,补码都相同。

负数:负数的原码,反码,补码都不相同。

原码:直接按照正负数的形式翻译成二进制。

反码:原码的符号位不变,其它按位取反。

补码:反码+1。

对于整型来说,数据存放内存中其实存放的是补码。

四、移位操作符

<<左移操作符

>>右移操作符

4.1左移操作符

规则:左边抛弃,右边补零。

当num左移一位时,为什么n等于20呢?

如图可以看出,num左边丢1位,右边补了一位。

4.2右移操作符

右移操作符移位规则分为两种:

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

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

编译器中通常采用算术右移。

对于移位运算符,不要移动负数位,这个标准还未规定。

举报

相关推荐

0 条评论