We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bitset では、[]byte を []uint64 に変換する。もし、バイト列の長さが 8 の倍数でない場合にどのように対応するかを考察する
[]byte
[]uint64
The text was updated successfully, but these errors were encountered:
バイト列を拡張しない仕様である ( #6 ) ため、バイト列の長さが 8 の倍数でなくあまりが発生するときの対処法としては以下のものが考えられる。
(len(buf) + 7) / 8
len(buf) / 8
余った部分を含めた場合最後の要素の uint64 にアクセスしたときに不正なメモリアクセスをすることになるため採用しない。
余った部分を無視して型変換する場合は、余った部分も含めてビットベクトルの処理が行われるとユーザが期待していた場合、その間違いに気づけないためユーザがバグを実装する可能性がある。
エラーを返して型変換する場合は、ユーザの使いやすさが著しく悪くなり柔軟性が落ちるが、ユーザは間違った長さのバイト列を渡したことに気づける利点がある。そのため、 エラーを返して型変換する 手法を採用する。
Sorry, something went wrong.
kawasin73
No branches or pull requests
bitset では、
[]byte
を[]uint64
に変換する。もし、バイト列の長さが 8 の倍数でない場合にどのように対応するかを考察するThe text was updated successfully, but these errors were encountered: