当前位置: 首页 > news >正文

网站链接数怎么做谷歌收录提交入口

网站链接数怎么做,谷歌收录提交入口,微网站建设平台,网站优化连云港哪家强?若协议中如下图所示: 注意: 长度为1,表示1个字节,也就是0xFF,也就是 1111 1111 (这里0xFF只是单纯表示一个数,也可以是其他数,这里需要注意的是1个字节的意思) 一、按位…

若协议中如下图所示: 

注意:

        长度为1,表示1个字节,也就是0xFF,也就是 1111 1111

(这里0xFF只是单纯表示一个数,也可以是其他数,这里需要注意的是1个字节的意思)

一、按位与 &

  • 有0则0,全1则1
  • 1010 & 0011 =  0010
  • 0xef & 0xfe = 0xee ( 0x1110 1111 & 0x1111 1110 = 0x1110 1110)

1.1 配合左移运算符  <<  取指定的位

 说明:DEC表示十进制、BIN表示二进制、HEX表示十六进制

#include <stdio.h>
// (DEC)64 = (BIN)0011 0100 = (HEX)0x34int main()
{   int data = 0x34;    // 定义位掩码int greenMask = 1 << 0;    // 绿灯int yellowMask = 1 << 1;   // 黄灯int redMask = 1 << 2;      // 红灯int buzzerMask = 1 << 3;   // 蜂鸣器int blueMask = 1 << 4;     // 蓝灯int whiteMask = 1 << 5;    // 白灯// 检查并打印状态if((data & greenMask) == 0) printf("绿灯灭 "); else printf("绿灯亮 ");if((data & yellowMask) == 0) printf("黄灯灭 "); else printf("黄灯亮 ");if((data & redMask) == 0) printf("红灯灭 "); else printf("红灯亮 ");if((data & buzzerMask) == 0) printf("蜂鸣器停 "); else printf("蜂鸣器响 ");if((data & blueMask) == 0) printf("蓝灯灭 "); else printf("蓝灯亮 ");if((data & whiteMask) == 0) printf("白灯灭\n"); else printf("白灯亮\n");printf("\n\n");printf("Green Mask Value: 0x%x\n", greenMask);printf("Yellow Mask Value: 0x%x\n", yellowMask);printf("White Mask Value: 0x%x\n", whiteMask);return 0;
}输出: 绿灯灭 黄灯灭 红灯亮 蜂鸣器停 蓝灯亮 白灯亮Green Mask Value: 0x1      // 0x1 = 0001Yellow Mask Value: 0x2     // 0x2 = 0010White Mask Value: 0x20     // 0x20 = 10 0000

在C语言中,`<<` 是位左移运算符。当你有一个整数值(在这个例子中是1)并对其使用左移运算符,意味着你将该数值的二进制表示向左移动指定位数。每向左移一位,数值就相当于乘以2(因为二进制系统下,每一位代表的权重是2的幂次)。

具体到你的代码示例:

  • int greenMask = 1 << 0;表示将1(二进制表示为`00000001`)向左移动0位,实际上没有移动,所以`greenMask`的值为1,对应二进制的最低位,这里是用来控制绿灯的。
  • int yellowMask = 1 << 1;将1向左移动1位,得到`00000010`,即十进制的2,用作黄灯的控制位。
  • int redMask = 1 << 2;向左移2位,得到`00000100`,即十进制的4,对应红灯控制位。
  • int buzzerMask = 1 << 3;移动3位,得到`00001000`,即十进制的8,用于蜂鸣器。
  • int blueMask = 1 << 4;移动4位,得到`00010000`,即十进制的16,对应蓝灯。
  • int whiteMask = 1 << 5;移动5位,得到`00100000`,即十进制的32,控制白灯。

这样,每个掩码变量都对应了一个特定的位,可以用来单独控制或检测某个功能的状态。在后续的条件判断中,通过按位与操作(`&`)检查`data`中的特定位是否为1,以此来确定对应设备的状态(开启或关闭)。

1.2 整体按位与

#include <stdio.h>// 0x64 = 0110 0100     0x34 =  0011 0100int main() {int targetState = 0x34; // 这个掩码代表了指定的状态:白灯蓝灯亮,蜂鸣器停,红灯亮,黄绿灯灭int data_1 = 0x64; // 数据,假设这就是我们得到的数据int data_2 = 0x34;// 使用按位与操作来检查data是否匹配targetStateif((data_1 & targetState) == targetState) {printf("状态匹配:白灯亮 蓝灯亮 蜂鸣器停 红灯亮 黄灯灭 绿灯灭\n");} else {printf("状态不匹配\n");}if((data_2 & targetState) == targetState) {printf("状态匹配:白灯亮 蓝灯亮 蜂鸣器停 红灯亮 黄灯灭 绿灯灭\n");} else {printf("状态不匹配\n");}return 0;
}输出:
状态不匹配
状态匹配:白灯亮 蓝灯亮 蜂鸣器停 红灯亮 黄灯灭 绿灯灭

 1.3 清零状态

#include <stdio.h>int main() {// 定义位掩码int greenMask = 1 << 0;    // 绿灯int yellowMask = 1 << 1;   // 黄灯int redMask = 1 << 2;      // 红灯int buzzerMask = 1 << 3;   // 蜂鸣器int blueMask = 1 << 4;     // 蓝灯int whiteMask = 1 << 5;    // 白灯// 假设初始状态int data = 0b01101000; // 二进制表示,举例:绿灯灭、黄灯灭、红灯亮、蜂鸣器停、蓝灯亮、白灯亮// 打印原始状态printf("原始状态: ");if((data & greenMask) == 0) printf("绿灯灭 "); else printf("绿灯亮 ");if((data & yellowMask) == 0) printf("黄灯灭 "); else printf("黄灯亮 ");if((data & redMask) == 0) printf("红灯灭 "); else printf("红灯亮 ");if((data & buzzerMask) == 0) printf("蜂鸣器停 "); else printf("蜂鸣器响 ");if((data & blueMask) == 0) printf("蓝灯灭 "); else printf("蓝灯亮 ");if((data & whiteMask) == 0) printf("白灯灭\n"); else printf("白灯亮\n");// 创建清零所有灯的掩码int clearLightsMask = ~(greenMask | yellowMask | redMask | blueMask | whiteMask);// 使用按位与操作清零所有灯的状态data &= clearLightsMask;// 打印更新后的状态printf("清零灯状态后: ");if((data & greenMask) == 0) printf("绿灯灭 "); else printf("绿灯亮 ");if((data & yellowMask) == 0) printf("黄灯灭 "); else printf("黄灯亮 ");if((data & redMask) == 0) printf("红灯灭 "); else printf("红灯亮 ");if((data & buzzerMask) == 0) printf("蜂鸣器停 "); else printf("蜂鸣器响 ");if((data & blueMask) == 0) printf("蓝灯灭 "); else printf("蓝灯亮 ");if((data & whiteMask) == 0) printf("白灯灭\n"); else printf("白灯亮\n");return 0;
}输出:
原始状态: 绿灯灭 黄灯灭 红灯灭 蜂鸣器响 蓝灯灭 白灯亮
清零灯状态后: 绿灯灭 黄灯灭 红灯灭 蜂鸣器响 蓝灯灭 白灯灭

综合 

示例 1 :

要求: 取一个数的高八位与低八位,并将二者的顺序替换

涉及操作:

  • 取一个数中的某些值
  • 将两个8位的数合并为一个16位的数
#include <stdio.h>
#include <stdint.h>int main() {uint16_t combinedData = 0b0110011110110100; // (BIN) 0110011110110100 = (HEX) 0x67B4uint8_t highByte = combinedData >> 8;  // 取左边的八位uint8_t lowByte = combinedData & 0xFF; // 取右边的八位printf("Combined data in hexadecimal: 0x%x\n", combinedData);printf("highByte data in hexadecimal: 0x%x\n", highByte);printf("lowByte data in hexadecimal: 0x%x\n", lowByte);// 调换高八位与低八位顺序combinedData = (lowByte << 8) | highByte; // 右边的八位左移后变成16位,再与原本的左边八位取或printf("Combined data in hexadecimal: 0x%x\n", combinedData);return 0;
}输出:Combined data in hexadecimal: 0x67b4highByte data in hexadecimal: 0x67lowByte data in hexadecimal: 0xb4Combined data in hexadecimal: 0xb467比如是在串口接收的时候:if(upAck->funcCode==0x03) // 表示要读寄存器时{// upAck->regAmt 为寄存器的数量,若一个寄存器为16位for(u16 i = 0; i < upAck->regAmt; i+=2) // 每两个字节一组进行高低字节交换{u16 lowByte = MeterAck->data[i];          // 保存低字节u16 highByte = MeterAck->data[i+1];       // 保存高字节// 组合成正确的16位值,此时lowByte已经是低字节,highByte是高字节u16 temp = (highByte << 8) | lowByte; // 分别提取高字节和低字节到响应缓冲区upAck->rdata[i] = highByte;               // 高字节upAck->rdata[i+1] = lowByte;              // 低字节}}

示例 2 :

要求: 检测所有器件是否全部停止

涉及操作:

  • 位与操作

#include <stdio.h>int main()
{   int data_0 = 0x34;     // (DEC)64 = (BIN)0011 0100 = (HEX)0x34int data_1 = 0x00;if (data_0 & 0x3F)   // 0x3F = 0011 1111printf("存在器件在运行\n");else printf("所有已经停止\n");if (data_1 & 0x3F)   // 0x3F = 0011 1111printf("存在器件在运行\n");else printf("所有已经停止\n");return 0;
}输出:存在器件在运行所有已经停止

http://www.dt0577.cn/news/21838.html

相关文章:

  • 网络设计课程有哪些seo推广主要做什么
  • 营口电商平台网站建设推广宣传
  • 建设部网站公示农产品网络营销策划书
  • wordpress简洁风模板seo链接优化
  • 如何给网站的关键词做排名淘宝店铺买卖交易平台
  • 做返利网站怎麼站长工具网站排名
  • 如何做自己的淘宝客网站国际重大新闻
  • 淮安市做网站的公司合肥网络推广营销
  • 专业的佛山网站建设价格安徽百度seo教程
  • 娄底建网站网络营销实训总结报告
  • java旅游网站开发论文网络站点推广的方法有哪些
  • 网站死链买号链接
  • 新兴街做网站公司全网关键词搜索工具
  • 重庆高端网站建设百度搜索指数在线查询
  • 自己做网站还是开淘宝产品推广词
  • 网站用绝对路径好还是相对路径seo许昌网站seo
  • wordpress 4.9.1 主题seo科技网
  • 泉州网站建设策划百度的广告怎么免费发布
  • 湖南厦门网站优化深圳建站公司
  • 外包网站怎么做seo如何设计一个网站页面
  • 独立域名网站建设网站seo的优化怎么做
  • 个人电商网站建设范例凡科建站怎么样
  • 郑州网站推广方法如何推广好一个产品
  • 淘宝客做网站好还是建群号网络推广工作怎么样
  • 男女直接做网站电子技术培训机构
  • 公司名称变更网站要重新备案检测网站是否安全
  • 石家庄住房建设厅网站金戈枸橼酸西地那非
  • wordpress外贸建站教程网络营销软件推广
  • 镇江手机网站建设网站排行榜查询
  • 网站开发用c 语言seo优化标题 关键词