C语言之unsigned int和int的运算

原创 2013年12月02日 17:41:48

        首先先说明下:

1)数值在计算机中是以补码的形式存储的。同时如果两个补码相加时,最高位也就是我们的符号位如果有进位,是需要丢弃的。正数的补码是自己本身,

      负数的补码是符号位为1,其余位为该数绝对值的原码按位取反,然后整个数再加1.

2)如果一个运算符两边的运算数类型不同,先要将其转换为相同的类型,即较低类型转换为较高类型,然后再参加运算,转换规则如下图所示。
double ←── float 高

long

unsigned

int ←── char,short 低

 

ok现在开始看几个例子:

例1:

int a=6;

unsigned int b=-20;

unsigned int c = a+b;

c是多少?

a:0x00 00 00 06

b:0xff ff ff ec   (0x00 00 00 14->取反0x ff ff ff eb->加1 0x ff ff ff ec)

c 的值为:0x ff ff ff f2 

例2:

int a = -6;

unsigned int b = 20;

unsigned int c = a+b;

c是多少

a: 0x ff ff ff fA

b:0x 00 00 00 14

c=0x00 00 00 0e;

 


 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C语言char强制类型转换unsigned int时的问题

今天做socket通信项目的时候要从数据包的包头计算图片长和宽,结果图片大小不对显示了一张大长脸,做个记录给自己提个醒。 图片高度,高度都用四个字节表示,数据包从第五位开始每四位依次是宽,高,想也没...

在C语言中,double、long、unsigned、int、char类型数据所占字节数

和机器字长及编译器有关系: 所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的): 1 sizeof(short int) si...

C语言 算术转换 unsigned signed int

在C语言中,如果运算符的两个操作符不相同,那么它们之间对进行一定的算术转化,然后再进行运算操作。说明这个规则之前,先看一个例子 int x = -1; int y = 5; unsigne...

在C语言中,double、long、unsigned、int、char类型数据所占字节数

在C语言中,double、long、unsigned、int、char类型数据所占字节数1.说明:1.以防以后会用到。 2. 和机器字长及编译器有关系: 所以,int,long int,short...

[C语言]unsigned int与 int

有时间记录一点东西。 上周在食堂吃饭时,遇到师弟,提到一个与unsigned相关的问题,大致意思是表达式运算中有unsigned类型,导致结果跟预期结果不一致(预期结果为负数,结果实际为一个大整数)...

用C语言区分signed int 与 unsigned int的一种思路

转载自:http://blog.donews.com/littlefish/archive/2006/03/18/773954.aspx 一:分析 signed int 与 unsig...

volatile_unsigned_int

  • 2011-09-09 16:16
  • 88KB
  • 下载

C语言:将16进制字符串转化为int类型值

将16进制字符串值转换为 in

volatile_unsigned_int

  • 2013-03-22 23:27
  • 197KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)