
No.1ベストアンサー
- 回答日時:
Javaの`Integer.bitCount()`メソッドは、与えられた整数のビット表現においてセットされているビットの数を数えます。
これをExcelの数式で表現するには、ビット演算を使用することは難しいですが、`SUBSTITUTE`や`LEN`などの関数を使って近似することはできます。以下は、Excel数式の例ですが、これは正確なビット数を返すものではありません。`A1`に整数があると仮定します:
```excel
=LEN(SUBSTITUTE(SUBSTITUTE(A1,"0",""),"",""))
```
これは、整数のビット表現において0以外の文字(1)の数を数える簡易的な方法です。ただし、`Integer.bitCount()`と同等の効率的なビット演算をExcelで直接行うことは難しいです。
No.4
- 回答日時:
>100を入れると3、 10や5なら2、8や4や2や1なら、1というようにです。
を実現するだけであれば、A1セルに入力した数値の結果をB1セルに表示するとして、B1セルに
=LEN(SUBSTITUTE(IF(A1>32767,#NUM!,VALUE(IF(A1>=16384,"1","0")&IF(MOD(A1,16384)>=8192,"1","0")&IF(MOD(A1,8192)>=4096,"1","0")&IF(MOD(A1,4096)>=2048,"1","0")&IF(MOD(A1,2048)>=1024,"1","0")&IF(MOD(A1,1024)>=512,"1","0")&TEXT(IF(A1<512,DEC2BIN(A1),DEC2BIN(MOD(A1,512))),"000000000"))),"0",""))
を入れることで可能です。
但し、A1に入力できる数値は0~32767の範囲とし、それ以外の数値の場合の結果は保証されないものとします。
No.3
- 回答日時:
こんにちは
「Integer.bitCount() 」を正確には知りませんので、完全互換にはならないかも知れませんけれど・・・
エクセルの関数に2進数表記に変換するものがありますので、これで対象の数を変換して「1」の数を数えれば似た様なものを作ることは可能です。
例えば、A1セルに元の値(整数)があるとして、
=LEN(SUBSTITUTE(DEC2BIN(A1),"0",""))
とすることで、多少は似た計算が可能です。
異なる点は、DEC2BIN関数は9ビットまでの対応なので0~511までしか計算できません。
また、負数は補数表現になる関係からビット数が異なるので違う結果になります。
とは言え、上記を元に工夫すれば、同等の計算を作成することは可能と思います。
例えば、2進化する部分を
DEC2BIN(QUOTIENT(A1,512))&DEC2BIN(MOD(A1,512),9)
のような計算に置換えることで、対象を0~262143(=512*512-1)まで拡張できます。
(8ビットずつにした方がわかりやすいかも知れませんが・・)
同じ要領で桁数を上げてゆけば、正の数は互換にできるでしょうし、負の数は先に判定して別に計算するようにすれば、同等のものを作成することも可能と思いますので、ご自身で試してみてください。
No.2
- 回答日時:
ユーザー関数判りますか?
以下をお試しください。
Function BitCount(r As Range)
Dim n As Long
If r.Count > 1 Then
BitCount = "#error"
Exit Function
End If
BitCiunt = 0
n = r
While n > 0
If (n And 1) Then BitCount = BitCount + 1
n = Int(n / 2)
Wend
End Function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ジークアクスのサイコガンダム...
-
【暗号資産】Bitcashって仮想通...
-
16ビットの符号付固定小数点...
-
エクセルVBAで xlOn xlOff の切替
-
【有効数字について】 授業で、...
-
実行計画の「COST」と「BYTE」...
-
CPUのHTについて教えてください。
-
空メールのデータ量はどれくら...
-
KBとMB
-
byteの語源
-
CPU、Z80からステート数から...
-
文字の容量(サイズ)についての...
-
1KBは、2の8乗X1000ではない...
-
JIS、SHIFT-JIS、EUCはなぜでき...
-
ワードの改行記号
-
GB と Gbの違いの意味
-
携帯電話の略語であるMBって英...
-
2バイト文字を一括削除するマクロ
-
512e/4K HDD とは?
-
H8Sで割り込み発生時の飛び先ア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ジークアクスのサイコガンダム...
-
【暗号資産】Bitcashって仮想通...
-
EXCEL16進⇒浮動小数変換したい
-
2ビット、3ビット、4ビットのグ...
-
エクセルVBAで xlOn xlOff の切替
-
6ビット(符号含む)の二進数
-
16ビットの符号付固定小数点...
-
エクセルでビット1をカウント J...
-
浮動小数点の表現(基本情報)
-
仮想通貨の取引所について
-
基本情報技術者試験のビットに...
-
基本情報技術者試験のビットに...
-
2進数の補数表示について
-
9ビットの2進数を符号付整数…
-
(<<1) & 0xeeeeなどが分かりません
-
2の補数
-
データ量の単位について教えて...
-
【有効数字について】 授業で、...
-
文字の容量(サイズ)についての...
-
携帯電話の略語であるMBって英...
おすすめ情報