0XFFFF用十制表示是多少啊?

Ferrerox 2008-01-17 03:28:04
0XFFFF是什么意思?
...全文
13507 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
haozi8088 2012-05-03
  • 打赏
  • 举报
回复
一楼正确
member 2010-06-15
  • 打赏
  • 举报
回复
补充一点,有符号整数,会存储补码,也是说按补码运算。
所以0xffff在有符号整数中表示-1。
比如:0x8001二进制展开会是 1000000000000001(-1)。在计算中,由于知道这是一个数的补码,于是求补码运算得出源码 0xffff.

0x80001 + 1 = -32766(d).

总之0xffff在运算(输出也作为运算)中会是-1.至于对这个数求补码的是谁,或许是编译器生成二进制码时,或许是在CPU中,这个没考证过(也或许忘记了)。有空查资料。
member 2010-06-15
  • 打赏
  • 举报
回复 1
有符号整数
这是-32767 1111111111111111(原) > 1000000000000000(反)> 1000000000000001(补=反+1)
也是-1的补码 1000000000000001(原) > 1111111111111110(反) > 1111111111111111(补=反+1)
负整数的求补码运算:除符号位外其余各位皆取反(这是反码),反码 + 1即为补码。
负整数的补码和源码可以通过求补码运算互相求出(对于这一点表达不太好,你可以看到上面的关系)。
对于 -0(这也是引入补码的原因,在正整数的减法运算中会转换为正整数和负整数的加法运算,于是有了问题,于是用反码运算,于是又有+0和-0的问题,于是用补码,对结果求补码运算既得真的结果)。
再来说 -0, -0的补码会溢出16位,在大于16的位的有符号整数中,这个数是-32768,而-32768的补码又是 -0(从刚才的补码和源码之间的关系可以看出这一点)。于是-32768也在16位有符号整数的表示范围内,
这里“于是”省略了一些东西,要想着在计算中怎么怎么样,对结果怎样存储等等,或者说这一种规定。(8位的-128, 16位的-27368,这里面有规律的,无论几位有符号整数-0的补码总会溢出)。
对于补码和源码的关系的描述,“互相求出”不好,可以说一个数的补码的补码即为这个数的源码。

正整数的反码、补码和源码相同。
----
对于无符号整数
表示:65535

------
鄙视一下楼上那些五花八门的回答,回答问题要严谨。
楼主是问这个数表示什么,你们又是补码又是反码的。

mydreamkeeper 2009-08-11
  • 打赏
  • 举报
回复
更清楚了!谢谢!
horsemz 2008-11-12
  • 打赏
  • 举报
回复
学习了 哈哈哈 会拉
abai977 2008-07-01
  • 打赏
  • 举报
回复
去华为面试问过这样的题,同意一楼的意见!
hlyang 2008-01-17
  • 打赏
  • 举报
回复
顶3楼

7楼,32位系统中 应该是这样的吧
-1 应该是这样的吧:
0000 0000 0000 0000 0000 0000 0000 0001 -> 1111 1111 1111 1111 1111 1111 1111 1110 -> 1111 1111 1111 1111 1111 1111 1111 1111 -> 0xFFFFFFFF
huangzhtao 2008-01-17
  • 打赏
  • 举报
回复
学《计算机科学导论》时学过,同意LS。
Ferrerox 2008-01-17
  • 打赏
  • 举报
回复
int a=0xFFFF;

0xFFFF是补码,换算成:1111 1111 1111 1111
由于a的数据类型是signed int,所以第一位是符号位
由于第一位是1,可以知a是负数
补码换算成原码:1111 1111 1111 1111 取反加一得到0000 0000 0000 0001
原码加-号,所以a=-1
btc2005 2008-01-17
  • 打赏
  • 举报
回复
同意一楼
visame 2008-01-17
  • 打赏
  • 举报
回复
看来我的计算机基础知识很不扎实
特别是对补码什么的
degmd 2008-01-17
  • 打赏
  • 举报
回复
1楼朋友正解

32位系统中
-1在计算机中表示是 1的二进制,各位求反,末位加1即:
0000 0000 0000 0001 -> 1111 1111 1111 1110 -> 1111 1111 1111 1111 -> 0xFFFF
wawlian 2008-01-17
  • 打赏
  • 举报
回复
0x表示十六进制,0表示八进制,十进制另外就不用符号了。十六进制中0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F分别表示从0——15,接下来你自己算吧。
void_Vinscent 2008-01-17
  • 打赏
  • 举报
回复
0-9 a-f 共16个.
void_Vinscent 2008-01-17
  • 打赏
  • 举报
回复
0x 后面加数字表示这个数字是16进制的.
你自己算吧...小学2年级估计都要会算了吧现在.

一般用计算器算.附件里.
changestyle 2008-01-17
  • 打赏
  • 举报
回复
看是几位系统了
16位系统 int型就是 -1
32为系统 int型就是 65535
jiayodo 2008-01-17
  • 打赏
  • 举报
回复
65535
Treazy 2008-01-17
  • 打赏
  • 举报
回复
0xFFFF

如果是int,则表示-1
如果是unsigned int,则表示65535

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧