美文网首页
Day6 进制与位运算

Day6 进制与位运算

作者: ququququ | 来源:发表于2019-01-02 17:26 被阅读0次

一、进制

在计算机编程中,整数可以通过十进制、二进制、八进制和十六进制来表示

1、十进制

基数:0、1、2、3、 4、 5、 6、 7、 8、 9

进位:逢10进1

位权:例如:123 = 100 + 20 + 3

2、二进制

基数:0、1

进位:逢2进1

位权:例如:1100 = 8+ 4 + 0 + 0

3、八进制

基数:0、1、2、3、4、5、6、7

进位:逢8进1

位权:例如:67 = 48 + 7

4、十六进制

基数:0~ 9、a(A)~f(F) --- a(A)(10) , b(B)(11), c(C)(12), d(D)(13), e(E)(14), f(F)(15)

进位:逢16进1

位权:例如:ff= 255

程序中怎么表示不同进制的数

写法 说明 打印
num = 110 直接写的数字就是10进制 直接打印其他进制数会显示十进制
num = 0o110 0o+八s进制数 oct(num),返回八进制字符串
num = 0b110 0b+二进制数 bin(num),返回二进制字符串
num = 0x110 0x+十六 进制数 hex(num),返回十六进制字符串

二、二进制

计算机存储的时候只能存储数字数据,而且存的是数字的补码。计算机对数据进行运算的时候是使用补码进行运算的,将数据从计算机中读出来看到的是原码。

1.原码

符号位+真值

说明:

符号位:最高位是0表示正数,是1表示复数

真值:去掉正负,数字对应的二进制

100的原码:01100100

-100的原码:11100100

2.反码

正数的反码:就是原码

负数的反码:原码的符号位不变,其余的位数取反。

100的反码:01100100

-100的反码:10011011

3.补码

正数的补码:还是原码

负数的补码:反码+1

100的补码:01100100

-100的补码:10011100

为什么要存补码:
因为计算机中只有加法器,没有减法器。如果计算机两个数相减,计算机内部是加上一个负数。

三、位运算

符号 说明 如果a=0b1010,b=0b1100
& 按位与运算 a & b,结果为0b1000
| 按位或运算 a | b,结果为0b1110
~ 按位取反 ~b,结果为-0b1101
^ 按位异或 a ^ b,结果为0b110
<< 左移 a<<1,结果为0b10100
>> 右移 a>>1,结果为0b101

与运算:一个位上的数如果和1与,可以保留这个位上的数;和0与可以置0。

应用:判断一个是逇奇偶性。

num % 2 == 0 # num是偶数
# 如果是偶数这个数的二进制的最低位为0,为1是奇数
num & 1 == 0 # num是偶数
num & 1 == 1 # num是奇数

左移N为相当于数字*2的N次方

右移N位相当于数字//2的N次方

应用:快速乘2,整除2操作。

相关文章

  • Day6 进制与位运算

    一、进制 在计算机编程中,整数可以通过十进制、二进制、八进制和十六进制来表示 1、十进制 基数:0、1、2、3、 ...

  • 10/17

    今天老师讲了进制转换和位运算。进制转换就是二进制、八进制、十进制、十六进制的相互转化,位运算包括按位与,按位或,异...

  • C语言08- 位运算,宏定义,递归

    16:位运算 16.1:位运算概述 二进制与位运算 16.2:与(and):& 与运算:只有当2个数对应的位都为1...

  • 进制与位运算

    进制 二进制 0 1组成,封2进1 八进制0~7组成,封8进1 十进制0~9组成,封10进1 十六进制0~9~AB...

  • 进制与位运算

    在计算机编程中,整数可以通过十进制、二进制、八进制和十六进制来表示 1.进制 一、十进制a.基数:0,1,2,3,...

  • 理解C语言位运算符

    位运算符 位运算符包括:& 、|、^、~、<<、>> 分析 & 按位与操作,按二进制位进行"与"运算。| 按位或运...

  • javaSE学习-位运算符

    & 位与 | 位或 位运算符会将数字转化为二进制再进行计算。 分析: 上面这些运算符会将数字转换成2进制再进行运算...

  • 算法总结-位运算

    位运算符用于二进制运算 与运算 & 二进制数 n & 1 的结果为n的末位 异或运算 ^ 长度为 L 的二进制数 ...

  • Java 位运算符

    位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。位运算符主要针对两个二进制数的位进行逻辑运算。...

  • Java学习笔记-第一天

    位运算符 位运算是直接对二进制进行运算. 异或运算(^):相同二进制位进行运算,结果是0.不相同二进制位运算结果是...

网友评论

      本文标题:Day6 进制与位运算

      本文链接:https://www.haomeiwen.com/subject/smttrqtx.html