7.TypeScript位运算符

位操作是程序设计中对位模式按位或二进制数的一元和二元操作。
位运算符与描述如下:
image
位运算符中,除 ~ 以外,其余均为二元运算符。

二进制与十进制

现代的计算机和依赖计算机的设备里都使用二进制。
大多数情况下包括日常生活中使用的都是十进制。
二进制数据用0和1来表示,进位规则是“逢二进一”,十进制是“逢十进一”。‌
二进制与‌十进制的转换是计算机科学中的基本技能。

  • 二进制数转换为十进制数
    方法:“按权展开求和”。
    先将二进制的数写成加权系数展开式,而后根据十进制的加法规则进行求和 。
    【例】:
    image

规律:个位上的数字的次数是0,十位上的数字的次数是1,......,依次递增,而十分位的数字的次数是-1,百分位上数字的次数是-2,......,依次递减。

  • 十进制数转换为二进制数
    十进制数转换为二进制数要分整数部分和小数部分分别转换,最后再组合到一起
    整数部分采用 "除2取余,逆序排列"法。用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
    image
    小数部分要用“乘2取整”法,小数乘2得到的结果取整保留。未取的小数乘2.依次类推,直到剩余的小数为0.让后把之前每次保留的整数按先后顺序从左到右排列,就得到了二进制数的小数部分
    image

实例:

let a = 2;
let b = 3;
let result;
result = a & b;
/**
 * a的二进制:010
 * b的二进制:011
 * a&b的二进制:010 = 2;
 */
console.log("按位与:" + result);
/**
 * 按位或:a|b = 011 = 3;
 */
result = a | b;
console.log("按位或:" + result);
/**
 * 按位取反:~a = 101 = -3;
 */
result = ~a;
console.log("按位取反:" + result);
/**
 * 按位异或:a^b = 001 = 1;
 */
result = a ^ b;
console.log("按位异或:" + result);
/**
 * 左移:a<<b 
 * 0000 0010向左移动3位-> 0 0010 000 = 16
 */
result = a << b;
console.log("左移:" + result);
/**
 * 右移:a>>b
 * 0000 0010向右移动3位-> 000 0000 0 = 0
 */
result = a >> b;
console.log("右移:" + result);

image

posted @ 2024-11-12 18:31  EricShx  阅读(35)  评论(0)    收藏  举报