微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我需要将数字从255转换为256

如何解决我需要将数字从255转换为256

| 我有一个文件,其中包含以255为基数存储的数字。因此,我需要将数字从255转换为256。基数是基数。 提示:基数255表示每个字节包含0到254的数字,而不是0到255的数字(如果该数字为\'normal \'(基数256))。 有任何低级例程(例如位旋转)可以做到这一点吗?     

解决方法

如果我理解正确,则需要以下内容(我使用Delphi 2009+ Exit语法):
function GetLongWord255(Source: LongWord; var Target: LongWord): Boolean;
var
  B: Byte;

begin
  B:= Byte(Source shr 24);
  if B = 255 then Exit(False);
  Target:= B;
  B:= Byte(Source shr 16);
  if B = 255 then Exit(False);
  Target:= Target * 255 + B;
  B:= Byte(Source shr 8);
  if B = 255 then Exit(False);
  Target:= Target * 255 + B;
  B:= Byte(Source);
  if B = 255 then Exit(False);
  Target:= Target * 255 + B;
  Exit(True);
end;
至于低级技巧,您可以使用
Target * 255 = Target shl 8 - Target;
尽管我不确定您可以从中受益。 :)     ,您有4个字节,每个字节的基数为255,即。 \“几乎一个字节\”。 要计算总和,请执行以下操作:
sum = b1 + (b2 + (b3 + b4 * 255) * 255) * 255
您必须根据值的字节序来确定b1是最左还是最右字节。 您可以这样重写上面的内容,以使其更易于理解:
sum  = b1
sum += b2 * 255
sum += b3 * 255 * 255
sum += b4 * 255 * 255 * 255
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?