c语言 8位有符号整数,C语言中什么是一个8位的整数

匿名用户

1级

2013-08-05 回答

【8位整数】

计算机中存储数据,是以二进制的形式存储(有时也被表示为16进制)。

二进制8位 就是 0000 0000 到 1111 1111 (换算成十进制是 0 ~ 255 )

【无符号 / 有符号 整型】

同时C语言中 整型的最高位 用来表示 符号。

规定当  最高位为 1表示负数。

无符号整型中 附加 unsigned 关键字

无符号8位整数, 0000 0000  ~  1111 1111 表示 0 ~ 255

有符号整型中 没有附加 unsigned 关键字

有符号8位整数:

0000 0000  ~  0111 1111 表示 0 ~ 127

1111 1111  ~  1000 0000 表示 -1 ~  -128

【第一种方法】【 char 表示8位整数 】

C语言 中一般 用 char 表示一个字节(byte)来表示 8位(bit)整数

但是如果 你想自定义 位数 比如 4位整数 7位整数 11位整数等等呢

就需要用到结构体 中可以可以声明 一个类型的实际占用位数。

【第二种方法】【 struct 中自定义类型位数 】

你可以使用 struct 或者 class (C++中使用,可以定义构造函数 或者使用默认构造函数)内部数据成员可以加冒号限定位数。

【 演示说明 】

以下代码演示了  当 有符号整型限定为n时(n小于等于类型最大占用位数) 赋值 2^(n-1)  时,整型变量表示为 一个负数。 说明高位被 设定为 1, 同时证明了 已经分配了 指定位数的 整数。

【 C语言 】中使用 如下所示:

#include 

#include 

#include 

#include 

struct INT_4{

int value :4;

};

struct INT_5{

int value :5;

};

void main() {

char ch = 128;

struct INT_4 i4 = {8};

struct INT_5 i5 = {16};

//i4.value = 8;

printf("i4 --> %d i5 --> %d \n", i4.value, i5.value);

printf("char --> %d \n", ch);

system("pause");;

}【 输出结果:】

i4 --> -8 i5 --> -16

char --> -128

请按任意键继续. . .

【 C++ 】中使用 如下所示:

#include 

#include 

#include 

struct INT_8{

int value :8;

};

class INT_4{

public:

INT_4 ( int value = 0 ){

this->value = value;

}

int value :4;

};

int main() {

INT_8 i8 = INT_8();

INT_4 i4 = INT_4();

char ch = 128;

i8.value = 128;

i4.value = 8;

printf("i8 --> %d, i4 --> %d \n", i8.value, i4.value);

printf("char --> %d \n", ch);

system("pause");;

return 0;

}【 输出结果:】

i8 --> -128, i4 --> -8

char --> -128

请按任意键继续. . .

当然这种方式用的不多,尤其是C语言中,不推荐使用这种方式。

C语言往往作为 库或者 驱动开发,需要很好的兼容性。

(不确定标准C 语言 ANSI C标准是否支持该特性。)

【 注:】

以上代码 均在 code::block GNU Mingw gcc 编译器下通过

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值