美文网首页
二进制知识

二进制知识

作者: 轻轻敲醒沉睡的心灵 | 来源:发表于2020-11-22 14:10 被阅读0次

1. Byte与Bit的关系

  • bit:Binary digit(二进制数位)的缩写,意为“位”或“比特”,是计算机运算的基础;计算机中的最小存储单元,存储内容总是0或1,所有二进制状态的实体都可以使用1bit表示,不能够单独寻址。
  • byte: 意为“字节”,是计算机文件大小的基本计算单位; 1byte=8bits ,可以存储所有ASCII所有字符(这是它包含8bits的初衷),十进制整数范围[-128,127]或[0, 255],是最小的可寻址存储单元
  • 关系: 1Byte=8bit (简写: 1B=8b)
1TB=1024GB      TB是千千兆 
1GB=1024MB      GB是千兆 
1MB=1024KB      MB是兆  
1KB=1024Byte    KB是千字节 

注意:Byte的缩写是B也就是字节

2. 二进制

二进制是计算技术中广泛采用的一种数制。二进制数据据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。
2.1 二进制的基本运算(只介绍常用的加、乘法)

  • 加法:
 0 + 0 = 0
 0 + 1 = 1
 1 + 0 = 1
 1 + 1 = 10

例如:


image.png
  • 乘法:
0×0=0
1×0=0
0×1=0
1×1=1

2.2 二进制、十进制、十六进制的转化

  • 十进制转二进制
    以十进制50为例,按短除法:
50 / 2 =25 余0
25 / 2 = 12 余1
12 / 2 =6 余0
6 / 2 =3 余0
3 / 2 =1 余1
1 / 2 = 0 余1
结果就是余数从下往上写 即110010
  • 二进制转十进制
    以二进制10010为例,按权运算:
    0 × 20 + 1 × 21 + 0 × 22 + 0 × 23 + 1 × 24 = 18

2.3 原码、反码、补码
机器数就是8位二进制,第一位代表的符号位。
机器数带符号:正数最高位为0,负数最高位为1

  • 原码:符号位加上真值的绝对值
  • 反码:正数的反码是其本身,负数的反码就是在其原码的基础上,符号位不变,其余各位取反
  • 补码:正数的补码就是其本身,负数的补码就是在原码的基础上,符号位不变,其余各位取反,最后 +1。即,在反码的基础上加1。补码转原码,符号位不变,其余各位取反加一。

2.4 二进制位运算

  • 1.<<(向左位移)
    运算规则:a<<b,表示a转为二进制后左移b位,左移后,空位补0。
    例:
    3:      00000000 00000000 00000000 00000011
       // 左移2位,空位补2个0
    3<<2: 00000000 00000000 00000000 00001100
    
    所以,3<<2 = 12
    规律:a左移b位,就是a乘以2的b次方。
  • 2.>>(向右位移)
    运算规则:a>>b,表示a转为二进制后右移b位,右移后,最高位是0,则空缺位补0;最高位是1,则空缺位补1。
    例:
    4:      00000000 00000000 00000000 00000100
         // 右移1位。右移后,最高位是0,则空缺位补0;最高位是1,则空缺位补1
    4>>1:   00000000 00000000 00000000 00000010
    
    所以,4 >> 1 = 2
    规律:a右移b位,就是a除以2的b次方。
  • 3.&(与运算)
    运算规则:相同位的两个数字都为1,则为1;若有一个不为1,则为0。
    例:
    5:    00000000 00000000 00000000 00000101
    6:    00000000 00000000 00000000 00000110
    5&6:  00000000 00000000 00000000 00000100   
    
    所以,5&6 = 4
  • 4.|(或运算)
    运算规则:相同位只要有一个为1即为1。
    例:
    5:    00000000 00000000 00000000 00000101
    6:    00000000 00000000 00000000 00000110
    5|6:  00000000 00000000 00000000 00000111  
    
    所以,5|6 = 7
  • 5.^(异或运算)
    运算规则:针对二进制位,如果某位不同则该位为1, 否则该位为0。
    例:
    5:    00000000 00000000 00000000 00000101
    6:    00000000 00000000 00000000 00000110
    5^6:  00000000 00000000 00000000 00000011 
    
    所以,5^6 = 3
  • 6.~(取反运算)
    运算规则:对二进制各位数进行取反,即1变成0,0变成1。
    例:
    5:    00000000 00000000 00000000 00000101
    ~5:   11111111 11111111 11111111 11111010 // 补码形式
           11111111 11111111 11111111 11111001 // 反码
           10000000 00000000 00000000 00000110 // 原码
    
    所以,~5 = -6

相关文章

  • java基础|java中的二进制运算以使用场景

    本文知识点java中用二进制使用场景java中声明二进制数据java中拼接二进制数据二进制的使用场景做标识用二进制...

  • java基础|java中的二进制运算以使用场景

    本文知识点 java中用二进制使用场景java中声明二进制数据java中拼接二进制数据 二进制的使用场景做标识用 ...

  • 二进制知识

    1. Byte与Bit的关系 bit:Binary digit(二进制数位)的缩写,意为“位”或“比特”,是计算机...

  • 算法位运算总结

    在位运算之前,对二进制需要掌握的基础知识 正数的二进制,例如 5原码是 0000 0000 0000 0000 0...

  • 二进制基础

    IP地址规划,子网划分需要用到二进制相关知识。 二进制与十进制的转换。 进制转换:http://jinzhi.su...

  • 2021-09-30华为机试入门三题

    相关知识: 十进制转为二进制:s = bin(23),返回的是转化后的二进制数,是一个str类型。 str.cou...

  • 2.0 前置知识

    前置知识 需要预先掌握一些 EOS 的基础知识。如包含的重要的二进制程序:nodeos, keosd, cleos...

  • 知识分享之Golang——使用embed包实现静态资源打包至二进

    知识分享之Golang——使用embed包实现静态资源打包至二进制文件中 背景 知识分享之Golang篇是我在日常...

  • 混子汇编语言学习之01笔记

    第一章 基础知识 1、指令 机器指令:CPU能直接识别并执行的二进制编码,就是一些二进制数。汇编指令:汇编指令...

  • go 看懂汇编代码

    硬核知识点 什么是plan9汇编 我们知道,CPU是只认二进制指令的,也就是一串的0101;人类无法记住这些二进制...

网友评论

      本文标题:二进制知识

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