Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 破解编码面试-数字交换问题_Algorithm - Fatal编程技术网

Algorithm 破解编码面试-数字交换问题

Algorithm 破解编码面试-数字交换问题,algorithm,Algorithm,在《破解编码面试》一书中,第16章有一个问题,叫做“数字交换” 有人能解释下图中突出显示的线吗 我用双数据类型的加减法尝试了这个问题,效果很好。除此之外,字符串在xor中不起作用 那么,它对更多数据类型而不仅仅是整数起作用意味着什么呢?哪种数据类型会给加减法带来问题 你对浮点数和双点数的测试还不够 如果您尝试使用浮点1的加法/减法解决方案。还有一万块。您将返回10000和0(因为表示限制)。在这种情况下,Xor也可以正常工作。双打也有同样的问题,但你需要更大的数字差异(我认为是1和1e16)。

在《破解编码面试》一书中,第16章有一个问题,叫做“数字交换”

有人能解释下图中突出显示的线吗

我用双数据类型的加减法尝试了这个问题,效果很好。除此之外,字符串在xor中不起作用


那么,它对更多数据类型而不仅仅是整数起作用意味着什么呢?哪种数据类型会给加减法带来问题

你对浮点数和双点数的测试还不够

如果您尝试使用浮点1的加法/减法解决方案。还有一万块。您将返回10000和0(因为表示限制)。在这种情况下,Xor也可以正常工作。双打也有同样的问题,但你需要更大的数字差异(我认为是1和1e16)。有些语言有可能处理这些情况的特殊表示

对于字符串,您需要使它们的长度相等,然后逐字节应用异或


总而言之,按位异或将在您可以应用它的所有情况下为您提供正确答案。

异或解决方案适用于以位表示的任何内容,即二进制计算机中的任何数据。sub add sub方法有问题的数据类型包括

  • 具有过流或欠流特性的任何类型,例如整数
  • 具有精度特征的任何类型,例如浮子
  • 没有在某些算术同源词(例如字符串)中定义这些运算的任何类型

请尽可能多地以文本形式提供,而不是以图像形式提供。在大多数真实的word场景中,我们将仅使用整数进行位操作交换。。。。除非
a
b
是同一对象。