0x01和0x01u有什么区别???

2019-07-21 00:25发布

如题:u是表示unsigned的意思
请问大神:
问题:在KEIL编译环境下,例如0x01,它表示的是signed还是unsigned?
如果是unsigned,那么很多源码上使用0x01u是不是就没有意义了???还是说有其它什么作用???
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
TinyBoy
1楼-- · 2019-07-21 04:57
不好意思,说错了,应该说默认类型都是signed的,你的0x81已经超过有符号8位范围了,自动默认为有符号16位了,所以,0x81怎么是-1呢,你一个看默认类型,一个看你的值大小就知道了。
TinyBoy
2楼-- · 2019-07-21 07:23
 精彩回答 2  元偷偷看……
liuchang
3楼-- · 2019-07-21 11:06
 精彩回答 2  元偷偷看……
TinyBoy
4楼-- · 2019-07-21 13:46
liuchang 发表于 2016-1-6 11:53
再次请问大神:
如果认为0x01是signed,
那么0x81(1000 0001)是不是就表示-1了?这样是不是不对啊~恳请大 ...

你看机器默认是什么啊,signed整形一般都是它 。
TinyBoy
5楼-- · 2019-07-21 18:19
liuchang 发表于 2016-1-6 11:53
再次请问大神:
如果认为0x01是signed,
那么0x81(1000 0001)是不是就表示-1了?这样是不是不对啊~恳请大 ...

你判断下如果不是-1,很明显,默认是有符号16位。
TinyBoy
6楼-- · 2019-07-21 20:20
liuchang 发表于 2016-1-6 11:53
再次请问大神:
如果认为0x01是signed,
那么0x81(1000 0001)是不是就表示-1了?这样是不是不对啊~恳请大 ...

如果默认是char,范围是-128~127吧,你写0x81,它的值本身就超过127了,当然默认是unsigned char了,你一个看默认类型,一个看你的值大小在那个类型范围内。

一周热门 更多>