CCS 调试发现两个无符号short类型a,b; a = ~b, 但a != ~b

原创 2015年07月08日 22:34:47

在调试ccs中, 有如下类似代码


发现unsigned short b  取反的临时变量是0xffff_0000 ,可见编译器把它扩展成32位无符号整形,然后取反。从而导致 a 和 ~b结果不一致。

如果改为short 类型,则比较相同,可见 b 扩展成32位整型填充高16位时会考虑b的类型,如果b是无符号类型的则高位填充0,如果b是有符号类型的则高位填充填充b的MSB。

今天看到一题:short a = 128, byte b = (byte)a,问打印的a,b分别是多少? key:a=128,b=-128

今天看到一题:short a = 128, byte b = (byte)a,问打印的a,b分别是多少? key:a=128,b=-128 byte类型的数据取值范围是:-128-127,...
  • xiaobao1186
  • xiaobao1186
  • 2013年05月04日 13:30
  • 1420

LintCode-A + B 问题

给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。 您在真实的面试中是否遇到过这个题?  Yes 样例 如果 a=1 并且 b=2,返回3 注意 ...
  • wangyuquanliuli
  • wangyuquanliuli
  • 2015年08月18日 17:50
  • 4162

<LeetCode> 题1: A+B求和

LeetCode 1: A+B求和题目描述给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。思路:由于不能适用+等运算符,根据提示,应该用位运算来完成。 异或运算(^)可以模拟一种不...
  • u013003827
  • u013003827
  • 2016年07月08日 14:10
  • 580

给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。

不用运算符号来实现加法运算,首先想到的就是位运了。一开始的时候用了while循环,意识到已经用了运算符号了。所以只能整体去操作。按位异或运算可以实现半加器,再借助进位,就可以实现两个数相加。1,计算1...
  • qq_26652705
  • qq_26652705
  • 2016年05月27日 10:43
  • 834

19:A*B问题

原题链接 总时间限制: 1000ms 内存限制: 65536kB 描述 输入两个正整数A和B,求A*B。 输入一行,包含两个正整数A和B,中间用单个空格隔开。1 ...
  • mayuan2017
  • mayuan2017
  • 2017年08月31日 10:17
  • 767

((a+b) + abs(a-b))/2 的用法

 ((a+b) + abs(a-b))/2 用于找出两个数中的较大者 如果a>b 则 ((a+b) + abs(a-b))/2 = (a + b + a - b) / 2 = a 如果a...
  • u012463389
  • u012463389
  • 2016年02月27日 11:24
  • 419

一个简单的集合并级取反问题 !A or !B == !(A and B)

A and B的反义   ! A  or  !B   错!! 要找到 !A 和!B的交际  !A or !B 而不是 !A and !B !A or !B == !(A and B) ...
  • waj89757
  • waj89757
  • 2013年05月08日 16:38
  • 1466

输入2个正整数A,B,求A与B的最小公倍数。

思路:最小公倍数的求解为两数乘积除以最大公约数,先得到最大公约数  注意这里的变量类型用的是long  当然用int可以  但是在测试数据的时候可能通不过,因为测试数据类型不一样 ---------...
  • OnePiece_only
  • OnePiece_only
  • 2017年01月31日 12:20
  • 853

(LeetCode初探)从A+B开始

LeetCode
  • suyoung_Coder
  • suyoung_Coder
  • 2015年05月22日 23:22
  • 1497

unsigned short *Sum( unsigned char a,unsigned char b);关于指针的一些思考

c语言中的指针实在是令人头疼的事,看了很多有关指针的文章,最近看到这样一道题目,有点恍然大悟就写下了这篇文章,希望对大家有所帮助,也希望指出不足的地方。 首先要说明的是,这道题的答案其实比不是我要讲...
  • wenhai_zh
  • wenhai_zh
  • 2012年11月03日 15:15
  • 2192
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CCS 调试发现两个无符号short类型a,b; a = ~b, 但a != ~b
举报原因:
原因补充:

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