获取二进制数中bit位的值示例(移位、与操作) | 您所在的位置:网站首页 › 一个字节等于八位是啥意思 › 获取二进制数中bit位的值示例(移位、与操作) |
二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二” 一个字节通常包括8个位即1Byte=8Bit。我们可以将这8位从左到右看作是从7到0。在字节中,位7称为高位,为0称为低位 操作符: 1、and 操作,操作符“&” 定义:称为按位与运算符。它对整型参数的每一个二进制位进行布尔与操作,即两个对应的二进制位同时为1时,才等于1。 2、操作符“|” 定义:称为按位或运算符。它对整型参数的每一个二进制位进行布尔或操作,即两个对应的二进制位,任意一个为1时,就等于1。 3、操作符“^” 称为按位异或运算符。它对整型参数的每一个二进制位进行布尔异或操作,即两个对应的二进制位,有且仅有一个为1时,才等于1。 4、操作符“~” 定义:称为按位非运算符。它是一个单运算符,对运算数的所有二进制位进行取反操作。 5、操作符“” 定义:称为按位右移运算符。它把第一个运算数的所有二进制位向右移动第二个运算数指定的位数。为了保持运算结果的符号不变,左边二进制位补 0 或 1 取决于原参数的符号位。如果第一个运算数是正的,运算结果最高位补 0;如果第一个运算数是负的,运算结果最高位补 1。将一个数向右移动N个二进制位相当于将该数除以2的N次方 以0开头的整数是八进制数 以0x开头的整数是十六进制数 下面是一个C++简单示例,我想取十进制 2 中 bit6-bit5 的值进行判断: 十进制 2 二进制表示为 0 0 0 0 0 0 1 0 (bit7 - bit0)高位在前 ,取 bit6-bit5 的值 0 0 0 0 0 0 1 0 就是红色00,再 进行判断 (00-A 01-B 10-C 11-D) vector arr = {0, 1, 2}; int a = arr[2]; int P = a >> (5)) & 0x03; string PB1 = ""; if(P == 0) {//00 PB1 = "A "; } else if(P == 1){//01 PB1 = "B "; } else if(PB1bit65 == 2){//10 PB1 = "C "; } else if(PB1bit65 == 3) {//11 PB1 = "D "; }0 0 0 0 0 0 1 0 >>5 (右移5位 ) 0 0 0 0 0 0 1 0 灰色位去掉,原来的第五位就到了第0位。再 与操作 & 0x03 (0011) 就是取两位bit6和bit5 值为00, p=0 所以PB1 = A (取1位 就是 & 1 ) strcmp() 比较字符串 == 比较的是指针 不会相等 |
CopyRight 2018-2019 实验室设备网 版权所有 |