六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 24|回复: 0

C/C++ 赋值语句机理一窥

[复制链接]

升级  42%

3

主题

3

主题

3

主题

童生

Rank: 1

积分
21
 楼主| 发表于 2013-1-26 12:29:03 | 显示全部楼层 |阅读模式
今天研究了一下c语言中赋值语句的简单机理。

例如
unsigned char ch= -127;

打印出ch的值为:129.

我对该值的理解是这样的:

在编译器编译这句话时,将-127这个立即数转换为对应的补码:(二进制)10000001

【过程:-127--符号位+原码-->11111111----符号位不变,源码取反加1--->10000001】

编译器同时将该补码保存在符号ch对应的字节存储空间中。当打印该变量时,因为是unsigned char类型,于是将10000001解读成一个无符号的数字,即129。

同理,char ch=255;打印ch时值为-1。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表