问题标签 [off-by-one]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JAVA:我认为错误反转字符串以检查 palaindrome off-by-one
我有问题。我收到了一项任务,为回文检查程序编写伪代码。我的问题是,虽然我在伪代码作业上获得了不错的成绩,但当我尝试用 java 编写代码以供自己启蒙时,我无法使一个能够检查int
和string
.
现在,就我可怜的技能而言,我发现的问题是,在我的for
循环中,我正在将字符值一个一个地转录到一个字符串中,但是,我无法想出一个代码解决方案来解决所有问题人物; 除了一个,它似乎把它们都拿走了。(或者也许我的错误是别的东西。)但这就是代码运行时的样子,但我从来没有得到回文的响应(即使是像222这样明显的东西),除了像单字符项目0 或 1。
任何解决此问题或什至了解更优雅的检查方式的帮助将不胜感激。
java - 循环的行为不像我预期的那样
我编写的代码可以编译,但不会产生我期望的输出。它在我输入所有输入数据并且没有给我正确的输出之前结束。知道错误在哪里吗?
这是主程序:
java - 隐写术后第一个字节的位
目前正在从事隐写术项目,在该项目中,给定消息(以字节为单位)和每个字节要修改的位数,将消息隐藏在任意字节数组中。
在结果消息的第一个解码字节中,该值的第一个(最左边)位设置为“1”而不是“0”。例如,当使用消息时"Foo".getBytes()
,maxBits = 1
结果是“Æoo”,而不是“Foo”(0b01000110 变为 0b11000110)。消息"Æoo".getBytes()
和maxBits = 1
结果是“Æoo”,这意味着据我所知,该位没有被翻转。
只有某些maxBits
消息字节的某些值会导致此错误,例如"Foo"
在maxBits
等于 1、5 和 6 时"Test"
遇到此问题,而在maxBits
等于 1、3 和 5 时遇到此问题。只有生成的第一个字符以它的结尾第一位设置,并且此问题仅发生在this.maxBits
与初始数据相关的指定值处。
- 为什么对于 的某些值
maxBits
,得到的解码消息的第一位总是 1? - 为什么不同的输入有不同的值
maxBits
可以正常工作,而其他输入则没有? maxBits
与原始数据相关的值和产生的错误结果的模式是什么?
编码和解码方法:
取消设置、设置和获取方法:
转换方法:
示例代码和输出:
c - 如何为 char** str 设置一个空值
我怎样才能为 char** str 设置一个空值,因为我有“越界指针的取消引用:1 个字节(1 个元素)超过数组 im 使用 C 语言的结尾”的错误
java - iText pdfcopy 因一个错误而关闭
在处理 PDF 合并请求时,我在一个流量很大的应用程序中经常看到这个错误。
java.lang.RuntimeException:请求了第 3 页,但文档只有 2 页。在 com.lowagie.text.pdf.PdfWriter.close(PdfWriter.java:1169) 在 com.lowagie.text.pdf.PdfCopy.close(PdfCopy.java:485) 在 ...
错误在PdfCopy
类中,addPage
方法:
但后来IOException
发生了(ClientAbortException
),但最后一行++currentPageNumber;
没有机会执行。
我该如何防止这种情况发生?我可以在最后一行添加一个 finally 块吗?
python - 星球大战 api => IndexError: 列表索引超出范围错误
我正在使用来自http://swapi.co/api/的星球大战 API 。我可以很好地连接到它,我的项目进展顺利。但是,我遇到了以下错误消息:IndexError: list index out of range 错误。查看其他堆栈溢出问题,这似乎是一个错误。关于我的程序,我不确定如何解决它。这是代码:
现在给我带来问题的那条线是在那个 elif view == 'starships' 区域。实际上,如果使用 API,您可以看到某些类别,例如电影、人物、星际飞船等。除电影之外,所有类别中都包含超过 10 个内容。我还注意到,如果我去http://swapi.co/api/starships/4/将找不到详细信息。某些类别没有数据的事实是否会导致我的问题?感谢您的任何见解!
这是回溯错误消息:
c# - EPPlus 一次修复
我正在更新一些旧代码,并想用 EPPlus 替换一些代码来创建 excel 文档。问题是我的旧代码从 [0, n-1] 和 EPPlus 索引 [1, n] 中的内容。
除了手动将所有单元格地址增加 [1,1] 之外,还有什么方法可以解决这个问题?
.net - 我似乎在 TestStack White 的 ListView.Row("Name", "Value") 方法中有一个错误
我要做的就是右键单击 Name="2" 所在的行。所以我使用:
如果keyName="2",则选择Name="xxx" 所在的行(即非一问题)。这让我非常想哭。TestStack White 依赖项是从 nuget 引入的,我认为它们是 4.x 版(?),或者至少它们应该是最新的,我使用的是 .Net 4.5.1 但如果可以下降到 4.0需要。有趣的是,nuget 包控制台警告:
从模块“TestStack.White”中导入的一些命令的名称包括未经批准的动词,这些动词可能会使它们不易被发现。要查找带有未批准动词的命令,请使用 Verbose 参数再次运行 Import-Module 命令。要获得批准的动词列表,请键入 Get-Verb。
有没有人在使用白色时看到过这样的事情?我在这里很茫然...
c - C 程序错误输出
我目前正在编写一个程序,该程序应该接收来自文本文件的输入并输出有关文本的统计信息,例如字母的数量、单词的大小以及它们出现的频率以及每个单词出现的次数。但是,每次我运行程序时,wordLengthAnalysis 都不会产生正确的输出。另外两个运行完美。这是一些示例文本(数字表示应该读取多少行):
1
你好,我叫 Bob
我住在加拿大
通常它只关闭一个数字。我应该怎么做才能纠正我的问题?我对编程很陌生,所以我确信这是基本的东西。
c - 为什么我的视频内存偏移量计算减一?
我一直在阅读并遵循 Nick Blundell 编写的关于从头开始编写操作系统的教程,该教程可在https://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-找到开发者.pdf
我已经成功编写了一个可以调用 C 代码的引导加载程序,因此我开始用 C 编写我的内核。我现在正在尝试编写可以在屏幕上打印字符和字符串的函数。当我开始执行 C 代码时,我处于 32 位保护模式,所以我试图从视频内存地址 0xb8000 正确计算内存偏移量。
当我尝试使用计算出的偏移量访问视频内存的特定区域时,我的问题就开始了。由于文本区域是 25 行 x 80 列,我使用公式 ((row * 80) + column) * 2 因为我必须有一个字符字节和一个属性字节。当我设置 row = 0 和 column = 0 时,我尝试打印的 X 不存在。设置行 = 0 列 = 1,左上角会出现一个 X。
从 char* video_memory = 0xb8000 开始并重复发出 video_memory++ 允许我正确访问每个字节并在黑色背景上打印一个空间。
这是我的主要代码:
这是row = 0 and column = 0时显示 的控制台:row和column为0时的控制台。没有X出现。
这是行 = 0 列 = 1 时的控制台: 行为 0 列为 1 时的控制台。出现 X。
这是我上面的 kernel.c 文件的 objdump:
我已经追踪并亲手检查了我的偏移计算的实际装配说明,它们似乎是正确的。我怀疑当我尝试将我的偏移量(类型 int)添加到我的视频内存地址(类型 unsigned char*)时会出现问题,但我再次不确定。
此外,我尝试硬编码偏移量的特定数字。使用 video_memory += 0 而不是 video_memory += offset 可以按需要工作。