我是一名学生,正在用 C 语言编写一个函数来对给定的位字段进行符号扩展。我正在使用 32 位。
我在谷歌上查找了这个答案,但没有找到我想要的东西。
我正在编写一个函数,该函数返回从 32 英寸中提取的一个或多个连续位的二进制补码表示形式。最左边的位是符号位。
如果我拉出一点点,我会返回什么?如何将单个位表示为带符号的二进制补码数?
据我了解,您想要从 32 位变量的位流中提取 N 个任意位 (N >= 1 &
这意味着您获取选定的位,将它们放置在工作变量的低位(即右端),然后通过向左传播(复制)剩余的选定位来“扩展”最左边的选定位。工作变量中的(以前未定义的)位。这可以作为单个一致算法来完成,无需对 N 的任何特定值进行特殊处理。
对于两位,它将产生可能的值 1、0、-1 和 -2(分别对应位模式 01、00、11 和 10)。对于一位,它将产生可能的值 0 和 -1(分别针对位模式 0 和 1)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)