当前位置: 首页 > 面试题库 >

这个Java代码背后的逻辑是什么

邢硕
2023-03-14
问题内容

我碰到了Java行,并对它的输出感到困惑。您能否解释一下此代码背后的逻辑

System.out.println((int)(char)(byte) -1);

输出:

65535

问题答案:

好吧,它等效于:

byte b = -1;
char c = (char) b; // c = '\uFFFF' - overflow from -1
int i = c; // i = 65535

真正地int将原始内容显式转换为只是使其调用System.out.println(int)而不是System.out.println(char)

我相信byteto char转换 实际上首先 要进行隐式加宽转换-就像这样:

byte b = -1;
int tmp = b; // tmp = -1
char c = (char) tmp; // c = '\uFFFF'

这些帮助有用?



 类似资料:
  • 我正试图从现实中解决一个问题 “偶数总和” 但是我不能这样做。下面是问题。 即使是总和也是两个玩家的游戏。玩家将获得N个正整数序列并轮流进行。在每个回合中,玩家选择一个非空切片(连续元素的子序列),使得该切片中的值之和是偶数,然后删除切片并连接序列的其余部分。第一个无法做出合法举动的玩家将输掉比赛。 如果你和你的对手玩这场游戏,你想知道你是否能赢,假设你和对手都玩得很好。你先走。 写一个函数:

  • C++中的“using”关键字背后的逻辑是什么? 它在不同的情况下使用,我试图找到是否所有这些都有共同点,有一个原因为什么“using”关键字被这样使用。

  • 问题内容: 众所周知,某些Python的数据结构使用 哈希表 存储诸如或的项目。因此,这些对象没有顺序。但似乎,对于某些数字序列,这是不正确的。 例如,请考虑以下示例: 但是,如果我们进行一些小的更改,则无法排序: 所以问题是:Python的哈希函数如何在整数序列上工作? 问题答案: 尽管SO的问题及其顺序有很多问题,但没有人解释哈希函数的算法。 因此,这里您所需要的就是知道python如何计算哈

  • 根据《联合法律法规》第15.19条: 如果左手操作数的提升类型是长的,那么只使用右手操作数的六个最低阶位作为移位距离。这就好像右边的操作数服从一个位逻辑AND运算符(§15.22.1),掩码值为0x3f(0b111111)。因此,实际使用的移位距离总是在0到63的范围内,包括在内。 我们可以在C#中找到同样的东西。在Python中,它将是6位而不是5位,但逻辑保持不变。 背后的理由是什么?对我来说

  • 问题内容: 为什么在下面的程序中不执行func3?在func1之后,不需要对func2进行评估,但是对于func3,不是吗? 问题答案: 您正在使用短路或。如果第一个参数为true,则整个表达式为true。 如果添加编译器使用的隐式括号可能会有所帮助 编辑 :正如Chris Jester-Young所说,这实际上是因为逻辑运算符必须从左到右的关联性: func1返回之后,它变为: 评估短路或后,它