内の関数を翻訳:は、C++</strong> C++で書かれた以下の機能<strong>を考えると活字体
#define getbit(s,i) ((s)[(i)/8] & 0x01<<(i)%8)
#define setbit(s,i) ((s)[(i)/8] |= 0x01<<(i)%8)
私は互換性の活字体の機能にそれらを有効にするにはどうすればよいですか?
私が思い付いた:
function setbit(s: string, i: number): number {
return +s[i/8] | 0x01 << i % 8;
}
function getbit(s: string, i: number): number {
return +s[i/8] & 0x01 << i % 8;
}
私はa |= b
相当a = a | b
であることが判明、私はgetbit機能の実装についてはよく分かりません。また、私は実際にそれらの機能が何をすべきか理解していません。誰かがそれらを説明できますか?
ありがとうございます。
編集:私は本当にバイナリ表現の文字列を必要としないので、
function setBit(x: number, mask: number) {
return x | 1 << mask;
}
// not really get, more like a test
function getBit(x: number, mask: number) {
return ((x >> mask) % 2 !== 0);
}
:
@Thomasからのアイデアを使用して、私はこれをやってしまいました。
これらはC++の機能ではありません。それらはマクロです - 型はありません –
まあ... C++で書かれています。 C++ライブラリには存在しません。私は間違った言葉を使いました。 –
@EdHeal私はなぜあなたが質問されたように好きではないので、質問をdownvoteするのは分かりません...あなたはdownvotingせずにこれを明確にすることができます。いくつかの人々は、無作為のものにそれを失うことに多くの評判を持っていない... –