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

网站建设制作的规划方案制作动画的软件app

网站建设制作的规划方案,制作动画的软件app,wordpress邮件激活账号,微信小商店前言#xff1a;过年偷懒了(●ˇ∀ˇ●)#xff0c;但是年后开学了一定要恢复学习状态#xff0c;在复习加继续学习的途中#xff0c;我发现对于unsigned关键字的掌握并不是很熟练#xff0c;于是翻阅了各个大佬的博客以及书籍#xff0c;总结了对于unsigned的一些知识点… 前言过年偷懒了(●ˇ∀ˇ●)但是年后开学了一定要恢复学习状态在复习加继续学习的途中我发现对于unsigned关键字的掌握并不是很熟练于是翻阅了各个大佬的博客以及书籍总结了对于unsigned的一些知识点。如有不对的地方欢迎各位大佬指正 什么是unsigned 从字面上来看不难理解unsigned是无符号的意思事实上的确没错。它在C语言中和signed相反signed是有符号的意思。其实C语言中的类型基本上都是有符号类型只是省去了signed 比如signed)int -- int (signed char)--char (这个取决于编译器绝大多数编译器都是这个比如我们常用的VS) 在了解什么是无符号之前我们先了解一下什么是符号位知道的童鞋可以跳过了 在计算机处理二进制数据时专门规定了一位符号位来确定数据的正负这个符号位通常是数据的最高位如8比特位数据左边第一位就是符号位剩下七位用来表示数据大小。 看例图 在知道符号位之后就很容易理解无符号了无符号嘛就是没有符号位原来的符号位可以列入计算了。值得一提的是无符号数都是非负数。 unsigned的深入理解 对于有符号类型的整形打印的时候用%d对于无符号类型的整形打印时用%u 来看一下下面这几个典型例题让你捋清它们之间的关系并且对unsigned有进一步的了解 例一 我们将a初始化为无符号整形将他以%u的形式打印时我们知道整数在计算机中存储是以二进制序列补码的形式存储的正数的补码和原码一样但是负数的补码是通过原码到反码到补码转换得到的。这个会放在最后说 -1的补码是11111111111111111111111111111111共计32位因为int类型是4个字节即32个比特位 按照等比数列求和公式计算得到2^32-14294967295. 这与代码跑出来的结果一致。 但是以%d的形式打印时为什么是-1呢因为以%d形式打印时系统会将a认为是有符号整形自然而然的将第一位视为了符号位经过反码到原码的反变换得到原码是10000000000000000000000000000001 即 -1。 我们经过调试发现在仅以%d形式打印完后a的数值仍是4294967295。这说明在printf函数内部进行打印时以怎么样的类型打印并不改变数据原来的类型。 例二 对于这个题中涉及到了整型提升如果不理解整型提升是无法理解这道题的。 所以在解决这道题之前先简单解释一下什么是整型提升 整型提升 整型提升是C程序设计语言中的一项规定在表达式计算时各种整型首先要提升为int类型如果int类型不足以表示则要提升为unsigned int类型然后执行表达式的运算。 这是百度百科里面给的解释是不是有些难以理解那么来点通俗易懂的。 对于这道题来讲就是以%d4字节打印的时候不足四个字节的类型比如shortchar等类型就要发生整型提升来补到4个字节正数补0负数补1往左端补。比如变量a它的类型是char类型大小是1个字节它的补码是111111118个比特位因为要以%d形式打印所以要发生整型提升就变成了11111111111111111111111111111111 打印时仍然为-1。 同样变量b的类型是short大小为两个字节所以发生整型提升后也为11111111111111111111111111111111结果为-1 变量c和变量d都是不足4字节的无符号整形无符号整形视为非负数发生整型提升时前面补0最终序列为 c00000000000000000000000011111111 ----2^8-1255 d00000000000000001111111111111111 -----2^16-165535 而变量e本身就是4个字节无需发生整型提升。因为是无符号整型所以视为非负数原码反码补码都一样2进制补码为11111111111111111111111111111111 以%d形式有符号整形打印时第一位视为符号位则视为负数通过转换得到原码 10000000000000000000000000000001----1,最终结果为-1 由此我们得到结论 对于负数 //1.不发生整型提升的情况下有符号数和无符号数以%u打印结果一样。因为以无符号整型打印都吧把符号位纳入计算 //2.发生整型提升的情况下有符号数前面补1无符号数补0 例三 通过之前的学习我们知道sizeof是用来计算大小的单目操作符那么a的类型是intsizeofa是4那显然-14啊理应输出但是系统却输出了这是为什么呢 通过查询MSDN我们发现sizeof返回值是size_t类型也就是unsigned int类型。 那么在a和其做比较时a会被转换为无符号类型作比较。a被转换为无符号类型后大小为2^32-1,显然大于4所以输出 By the way此处的a仍然为int类型只是作比较时视为无符号类型哟和之前的printf有异曲同工之处。 结论在将一个有符号整形和无符号整形作比较时会将有符号整形视为无符号整形来作比较但不改变有符号整形变量的性质。 附计算机中二进制数据的原码反码补码。 整形数据在计算机中存储时都是以补码形式存储的因为 补码使得符号位能与有效值部分一起参加运算从而简化运算规则。 使减法运算转换为加法运算进一步简化计算机中运算器的线路设计。 保证了0的唯一性保证了数的表示的准确性。 对于正数来讲 原码反码补码都相同 对于负数来说 反码原码符号位不变其他位按位取反 补码反码1 举个例子-10以8bit位数据为例 原码10001010 反码11110101 补码11110110 结语 对于整数其实不管怎么存它的二进制序列是不变的只是解释的方式不同那么打印出来的数值就不同了. ok辣以上就是unsigned的详细讲解了。如有错误欢迎指正qaq如有不足欢迎补充 继续加油啊还是那句话路漫漫其修远兮吾将上下而求索
http://www.zqtcl.cn/news/43306/

相关文章:

  • 建设局网站简介wordpress更换域名搬家
  • 用哪个软件做网站好人人车网站建设
  • 城阳区城市规划建设局网站中企动力z云邮
  • 郑州做网站好的公辽宁企业网站建设公司
  • 重庆手机版建站系统信息德州市建设工程协会网站
  • 中山建网站报价互联网网站制作公司哪家好
  • 集团做网站方案制作包含哪些方面海口免费自助建站模板
  • 猪八戒做的网站怎么样河池市住房和城乡建设厅网站
  • 北京造价员变更在哪个网站做网站建设哪个
  • 怎么实现网站建设报价方案免费的行情网站app软件推荐
  • 营销4p湖北seo推广系统
  • c mvc制作网站开发重庆牌联盟官网网站
  • 专业做网盘资源收录分享的网站c 网站做死循环
  • 网站开发一般要用到哪些软件wordpress图片多链接
  • ui做的好的网站有哪些建设网站计划ppt模板
  • 网站做系统装饰网站卧室做炕百度
  • asp网站静态化公众号文章怎么制作
  • 专业网站开发技术西安免费做网站
  • logo免费设计网站新网站建设问卷
  • 网站开发费用报价重庆市中心在哪个区
  • 城乡厅建设部网站首页网页设计需要学什么
  • ps中网站页面做多大的线上装修设计
  • 网站正能量免费软件wordpress 主題
  • 网站网页怎么设计移动端网站模板怎么做
  • 汕尾旅游攻略app跳转网站正规跨境电商平台有哪些
  • 网站建设邀标函上海嘉定建设局官方网站
  • 服务好的普通网站建设代理小程序项目
  • 广州云购网站建设建站宝盒合作
  • 湖北建站公司集团网站设计专业团队
  • 聊城做移动网站服务python做网站的开发