无需登录 数据私有 本地保存

程序员计算器 - 位运算与多进制转换

100
0
0
0
「二进制(Binary)」——以2为基数的数制系统,仅使用0和1两个数字表示所有数值,是计算机内部数据存储和处理的基础表示形式,每一位称为一个比特(bit)。「八进制(Octal)」——以8为基数的数制系统,使用0到7共8个数字表示数值,每三位二进制数可直接对应一位八进制数,常用于Unix文件权限表示(如chmod 755)。「十进制(Decimal)」——以10为基数的数制系统,使用0到9共10个数字表示数值,是人类日常生活中最常用的数制,在编程中用于直观理解数值大小。「十六进制(Hexadecimal)」——以16为基数的数制系统,使用0到9和A到F共16个符号表示数值,每四位二进制数可直接对应一位十六进制数,是编程中最常用的进制表示方式,广泛用于内存地址、颜色值、数据包分析等场景。「按位与(AND)」——对两个操作数的每一位执行逻辑与运算,只有当两个对应位都为1时结果位才为1,否则结果位为0,常用于位掩码操作中提取特定位的值。「按位或(OR)」——对两个操作数的每一位执行逻辑或运算,只要有一个对应位为1结果位就为1,只有两个对应位都为0时结果位才为0,常用于设置特定位为1。「按位异或(XOR)」——对两个操作数的每一位执行逻辑异或运算,两个对应位不同时结果位为1,相同时结果位为0,具有自反性(a XOR a = 0)和交换律,常用于加密算法、校验和计算和临时变量交换。「按位取反(NOT/Complement)」——对操作数的每一位执行逻辑非运算,0变为1、1变为0,得到原数的按位补码,在有符号整数中相当于-x-1。「逻辑左移(SHL/Shift Left)」——将操作数的所有二进制位向左移动指定的位数,右侧空出的位补0,左侧溢出的位丢弃,每左移一位相当于乘以2,左移n位相当于乘以2的n次方。「逻辑右移(SHR/Shift Right)」——将操作数的所有二进制位向右移动指定的位数,左侧空出的位补0,右侧溢出的位丢弃,每右移一位相当于无符号除以2并取整,用于无符号数的快速除法。「算术右移(SAR/Arithmetic Shift Right)」——将操作数的所有二进制位向右移动指定的位数,左侧空出的位填充原符号位的值(正数补0,负数补1),保持有符号数的符号不变,与逻辑右移的区别在于对负数的处理方式不同。「循环左移(ROL/Rotate Left)」——将操作数的所有二进制位向左移动指定的位数,从左侧移出的位重新填入右侧空出的位置,不丢失任何位信息,常用于密码算法(如AES、ChaCha20)中的混淆操作。「循环右移(ROR/Rotate Right)」——将操作数的所有二进制位向右移动指定的位数,从右侧移出的位重新填入左侧空出的位置,不丢失任何位信息,同样广泛用于密码算法。「位掩码(Bitmask)」——一个预先定义好的二进制模式,用于与目标数值进行AND或OR运算,以提取、设置或清除特定位的值,例如0xFF为低8位掩码、0xFF00为第8到15位掩码。「补码(Two's Complement)」——计算机中表示有符号整数的标准方式,正数的补码与原码相同,负数的补码为对应正数按位取反后加1,补码表示法使得加法和减法可以统一使用同一套加法器电路实现。「字节(Byte)」——计算机存储的基本单位,由8个比特组成,可表示0到255共256个不同的值,是程序员处理二进制数据时最常用的数据粒度。「字(Word)」——计算机体系结构中的数据处理单位,其位宽取决于处理器架构,在x86体系中通常指16位,在ARM体系中通常指32位。「位字段(Bit Field)」——在数据结构中用若干连续的二进制位来表示特定含义的字段,常见于网络协议头定义、硬件寄存器映射和嵌入式系统的配置寄存器中。