none
0xffffffffを符号無し整数で表示したい RRS feed

  • 質問

  • 0xffffffffを符号無し整数で表示させるにはどうしたらよいですか?

    そのまま入力すると-1となります。

    [system.uint32]$d = [uint32]0xffffffff

    での代入はエラーがでます。

    PS >$b = 0xffffffff
    PS >$a = 4294967295
    PS >$a -eq $b
    PS >False

    となります。

    PS >$a.tostring("x")
    ffffffff
    PS >$b.tostring("x")
    ffffffff
    PS >$a -eq [int64]$b
    False

    となります。

    また逆に、0xffを「-1」で出力するとはできますか?

    教えてください。

    2018年9月21日 5:03

回答

  • 入力となる0xffffffffはどういう素性のものでしょうか。

    リテラルであるなら、[uint32]0xffffffffL、[uint32]"0xffffffff" などで対応できます。

    int32のオブジェクト$a = 0xffffffffであるなら、

    [uint32]("0x" + $a.ToString("X"))

    [Convert]::ToUInt32($a.ToString("X"), 16) など。

    0xff → -1も、文字列経由でsbyteに変換すれば。

    • 回答としてマーク Brillia 2018年9月21日 7:23
    2018年9月21日 5:47

すべての返信

  • [Convert]::ToUInt32("0xffffffff",16)

    ではだめですか?

    2018年9月21日 5:42
  • 入力となる0xffffffffはどういう素性のものでしょうか。

    リテラルであるなら、[uint32]0xffffffffL、[uint32]"0xffffffff" などで対応できます。

    int32のオブジェクト$a = 0xffffffffであるなら、

    [uint32]("0x" + $a.ToString("X"))

    [Convert]::ToUInt32($a.ToString("X"), 16) など。

    0xff → -1も、文字列経由でsbyteに変換すれば。

    • 回答としてマーク Brillia 2018年9月21日 7:23
    2018年9月21日 5:47