这个计算器怎么用
程序员计算器专门处理进制和位运算。填一个数值、选它当前的进制,立刻看到它的二进制、八进制、十进制、十六进制写法;再填第二个数、选一种位运算(与、或、异或、左移、右移、取反),算出结果并同时给出十六进制和二进制。
计算过程全部在你自己的浏览器里完成,填入的数字不会上传到服务器,用着放心。结果为估算参考,重要事项请以官方或专业渠道为准。
程序员计算器是一个免费的在线工具,打开网页就能用,不用下载也不用注册。平时大家搜的“程序员计算器”、“进制转换计算器”、“位运算计算器”,说的都是这个。
使用方法
- 在上面的输入框里填入需要的数值(日期类直接选择日期)。
- 按需要选择好选项,点一下「计算」按钮。
- 结果会显示在下方,可以随时修改数值重新计算。
进制与位运算是怎么回事
程序员计算器把同一个整数在二进制、八进制、十进制、十六进制之间来回换算,同时提供按位操作。位运算直接作用在数的二进制位上,逐位处理:与运算两位都为1才得1,或运算有一位为1就得1,异或运算两位不同才得1,取反把每一位0和1对调。这些操作和加减乘除是两套完全不同的规则。
移位和实际用途
- 左移一位:相当于乘以2,左移n位乘以2的n次方
- 右移一位:相当于整除2,向下取整丢掉余数
- 掩码:用与运算配合一串特定的1,取出想要的那几位
- 标志位:用或运算把某位置1开启开关,用与非组合把某位清0
- 异或妙用:一个数异或同一个数两次会变回原样,常用于简单加解密
负数和位宽的坑
计算机里负数通常用补码表示:先取绝对值的二进制,逐位取反再加1。所以对负数取反、移位得到的结果,要放在固定位宽(比如8位、32位、64位)里看才准确。位宽不同,同一串位代表的数可能天差地别,超出范围的高位会被截断。做位运算前先确认你处理的是几位整数。
常见问题
左移和乘法有什么区别?对非负整数,左移n位就等于乘以2的n次方,速度更快。但左移只能乘2的幂,且移出位宽的高位会丢失,乘法则不会。
异或运算能用来做什么?异或能找出两个数不同的位,也能实现不用临时变量交换两个值。因为一个数异或另一个数再异或同一个数会还原,所以常见于校验和简易加密。
为什么对正数取反会得到负数?取反把所有位翻转,在补码表示下最高位(符号位)也被翻转,结果自然变成负数。对x取反的结果等于负x减1。