计算机的内嵌类型进行自动的符号扩展,比如char与int类型等等,但是也许你遇到一个有符号的二进制补码数x,并且使用仅仅b

位,更进一步,也许你需要将x转化为整型,如果x为正数,一个简单的复制操作就可以搞定,但是如果为负数,符号位必须扩展。

例如:假如我们仅仅用4位来存储一个数,于是-3用二进制就表示为1101,如果我们用8位,那么-3就表示为11111101.

最值得注意的位是4位的相关数使用更多位数在左边进行填充,这被称为“符号扩展”,在C语言中,符号扩展对于固定长度的数很普

通,因为位域可能是结构体或是联合体,例如:将5位数转换为全整型:

int x;   //待转换的数
int r;   //结果
struct {signed int x:5;} s;
r = s.x = x;

相关文章:

  • 2022-12-23
  • 2021-10-16
  • 2022-12-23
  • 2021-05-17
  • 2021-09-16
猜你喜欢
  • 2021-12-17
  • 2022-12-23
  • 2021-11-29
相关资源
相似解决方案