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

河北建设厅网站刷身份证友情链接检测的特点

河北建设厅网站刷身份证,友情链接检测的特点,管理咨询公司怎么找客户,html文档模板符号扩展是指在将较小位宽的有符号整数转换为较大位宽的有符号整数时,保持数值符号不变的过程。符号扩展通常通过在高位填充符号位的值来实现。 符号扩展的规则如下: 如果最高位(符号位)是 0(表示正数)&a…

符号扩展是指在将较小位宽的有符号整数转换为较大位宽的有符号整数时,保持数值符号不变的过程。符号扩展通常通过在高位填充符号位的值来实现。

符号扩展的规则如下:

  1. 如果最高位(符号位)是 0(表示正数),则在高位填充 0。
  2. 如果最高位是 1(表示负数),则在高位填充 1。

例如,假设一个 8 位的 char 类型val值为 0xFF,它在内存中的二进制表示是 11111111。这个值在 char 中表示 -1。如果我们将其转换为 32 位整数,符号扩展会将其转换为 11111111111111111111111111111111,这仍然是 -1 的二进制表示。

那么这就会导致一个问题,就是当发生unsigned和signed不同大小的整型类型之间的转换时,可能会出现结果不一致的问题,例如:

如下是一个一次性读取24位数值的函数:

uint32_t readU24(const char* p) 
{uint32_t value = 0;value |= (p[0] << 16);value |= (p[1] << 8);value |= p[2];return value;
}

当传入数据为char data[] = {0xFF, 0x01, 0x02};时,最终输出的结果为 0xFFFF0102,而不是预期的0xFF0102,这是因为在执行value |= (p[0] << 16);语句时,p[0]为0xFF,左移16位之后是0xFF0000,在value对其进行或运算时,会由于char和uint32_t之间的类型发送符号拓展,填充高位的值’1’,那么执行完这条语句之后的value值则为:0xFFFF0000。所以,value的值已经与预期结果不符了。

对应的解决方案有多种,这里就不写了,简单叙述:可以新建一个unsigned char的指针指向p,避免符号拓展,或者将参数p改为unsigned char*等。

所以,最好就是不要让不同整型(有无符号)之间的指针进行操作,保持统一,避免出现bug。

http://www.dtcms.com/wzjs/26727.html

相关文章:

  • wordpress 主题 修改seo的优点和缺点
  • 我自己做的一个网站显示证书错误百度关键词排名批量查询工具
  • 有个人做网站的吗360优化大师安卓下载
  • 怎么用网站源码做网站平台推广是什么意思
  • 怎么申请做网站公司网站设计要多少钱
  • 张槎网站建设清理大师
  • 客户对网站设计的要求信息流推广
  • 高端企业网站建设百度竞价收费标准
  • 建设银行的网站为什么登不上网络营销步骤
  • 做棋牌网站犯法吗女生学市场营销好吗
  • 沈阳网页设计公司有哪些网站seo网络优化
  • 微网站主机注册免费百度推广价格
  • 宜布网网站谁做的seo网站关键词优化方式
  • 广州网站建设推荐桔子seo
  • 信息技术转移网站建设seo网站平台
  • 网站维护升级页面seo教程 seo之家
  • 网站建设技术公司营销软文范例大全300
  • 栾城住房和城乡建设局网站百度大盘指数
  • oneinstack. WordPressqq群排名优化
  • 建筑工程有限公司电话广州百度网站排名优化
  • 小说网站建设模板下载app运营推广策划方案
  • 安阳县吕村七中录取分数线广州seo关键词
  • 三级 做爰免费网站网站 seo
  • 建设部作业证件查询官方网站免费b站推广
  • 内蒙古做网站的公司广告设计与制作需要学什么
  • 网站后台登陆密码破解百度下载老版本
  • 南宁seo排名首页潍坊seo教程
  • 品牌网站建设顾问百度浏览器官网
  • 自建站shopify东莞网站设计公司排名
  • 潍坊学网站建设郑州seo建站