преобразование и объяснение переменных в php и vb.net - PullRequest
2 голосов
/ 10 февраля 2010

У меня есть некоторый PHP-код, как показано ниже.

<?php
    $value = -1924050635;
    echo "before:".$value;
    echo "<br/>";
    $value = sprintf('%u', $value);
        echo "<br/>";
    echo "after:".$value;

?>

До значения -1924050635

после значения 2370916661

Моя проблема в том, что sprintf делает здесь.

Что мне нужно сделать, если я хочу использовать те же функции php в VB.Net.

1 Ответ

1 голос
/ 10 февраля 2010

Целочисленный тип php всегда подписан (и в вашем случае 32-битная ширина). То есть вы позволяете sprintf (% u) интерпретировать битовую последовательность целого числа со знаком как целое число без знака. Вы можете сделать нечто подобное в VB.Net, используя класс System.BitConverter , чтобы получить представление byte () целого числа со знаком и затем создать целое число без знака из этой последовательности.

Module Module1
  Sub Main()
    Dim x As Integer = -1924050635
    Dim y As UInteger = BitConverter.ToUInt32(BitConverter.GetBytes(x), 0)
    System.Console.Write("y=" & y)
  End Sub
End Module

отпечатков y=2370916661

(я не эксперт по VB.Net - могут быть более простые решения)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...