c/c++语言开发共享有符号和无符号,以及C中的位扩展如何工作

unsigned short s; s = 0xffff; int i = s; 

扩展如何在这里工作? 添加了2个更大的顺序字节,但我很困惑1或0是否在那里扩展。 这可能与平台有关,所以让我们关注Unix的作用。 int的两个更大的顺序字节是用1还是0填充,为什么?

基本上,计算机是否知道s是无符号的,并且正确地将0分配给int的高阶位? 所以i现在是0x0000ffff ? 或者因为ints是在unix中默认签名的,它是从s (a 1)获取有符号位并将其复制到更高阶的字节?

    不, unsigned值永远不会进行符号扩展。 上传将始终用零填充这样的值。

    更准确地说,无符号变量表示一个特定的数字,并且在演员表之后它仍然代表相同的数字,前提是新格式是可能的。

    hex或否,C(尽管不是C99)和C ++被设计为在没有位的情况下工作,例如使用基数为10的数字。

      以上就是c/c++开发分享有符号和无符号,以及C中的位扩展如何工作相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/544983.html

      (0)
      上一篇 2021年1月9日
      下一篇 2021年1月9日

      精彩推荐