ByteArraysをビットに変換して戻す際に問題が発生しました。結局私は当時ヘックスへのByteArrayから行くとしようとしているが、私は中に入れているよりも、私は戻って別の値を取得して抱えているPowershellバイトからビットへの配列
をこれはBitArrayセットアップです:。
$list = @(1,7,10,11,13,14,15,16,17,18,19,20,21,22,23,29,30,32,33,37,39,41,42,43,44,46,48,49,54,56,60,69,72,74,77,79,88,98,100,102,104,109,114,116,118,119,120,127,128,129,133,135,143,147)
$BitArray = New-Object BitArray(152)
$list | % {$BitArray[$_ - 1] = $true}
注:私は、
$result = New-Object System.Byte[] (19)
$BitArray.CopyTo($result, 0)
:「いくつかのカスタム型加速器私が見つけた私はバイトに変換し、これを使用していたに基づいて
if ($(try{[accelerators]}catch{"nope"}) -eq "nope"){
$xlr=[psobject].Assembly.GetType('System.Management.Automation.TypeAccelerators')
$xlr::Add('accelerators',([psobject].Assembly.GetType('System.Management.Automation.TypeAccelerators')))
}
@{
"datatable"="System.ComponentModel.MarshalByValueComponent"
"marshal"="System.Runtime.InteropServices.Marshal"
"BitArray"="System.Collections.BitArray"
}.GetEnumerator() | %{
$AcceleratorName=$_.name
$AcceleratorValue=$_.value
if (-not ((([accelerators]::get).keys | ? {$_ -eq "$AcceleratorName"} | Measure-Object).count)){
[accelerators]::add("$AcceleratorName","$AcceleratorValue")
}
}
を使用してメートル3210
しかし、私は両方の文字列にそれらを有効にするときに一致しません。文字コードへ
入力:
$array = @()
0..151 | % {if ($BitArray[$_]) {$array += 1} else {$array += 0}}
$InputAsArray = @()
0..18 | % {
$InputAsArray += ($array -join "").Substring(($_ * 8),8)
}
文字コードへの出力:
($result | % { [Convert]::ToString($_, 2).PadRight(8,'0')})
入力パターン:
10000010
01101111
11111110
00001101
10001010
11110101
10000101
00010000
00001001
01001010
00000001
00000000
01010101
00001000
01010111
00000011
10001010
00000010
00100000
出力パターン:
10000010
11110110
11111110
10110000
10100010
10101111
10100001
10000000
10010000
10100100
10000000
00000000
10101010
10000000
11101010
11000000
10100010
10000000
10000000
を '[変換] :: ToStringメソッド($ _、2)' - > '$($のCA = [変換] :: – PetSerAl
バイトまでのバイト数: '$ bytes = [byte []] @(ToStringArray) 0,1,2,3,4,5); $ bits = [Collections.BitArray] $ bytes'です。バイトへのビット: '$ bytes = [byte []] :: new([$ bits.length-1]/8)+1); $ bits.copyTo($ bytes、0) 'となります。あなたの質問には、「ByteArraysをビットに変換して戻す」という本来の目的に接続できなかったという多くのコードがあります。 – wOxxOm
@PetSerAlそれを反転させると、パディングが省略されます。 – Chirishman