code for fun

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

     计算机的内嵌类型进行自动的符号扩展,比如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;
posted on 2013-05-04 00:03  xueda120  阅读(444)  评论(0编辑  收藏  举报