
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で質問しましょう!
似たような質問が見つかりました
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- Excel(エクセル) エクセルの条件付き書式 4 2023/04/17 11:05
- Excel(エクセル) エクセルのCOUNTIF関数の使い方 1 2022/04/25 15:50
- Excel(エクセル) 【エクセル関数】アルファベットで以上だったらカウントする 4 2022/07/09 14:07
- Excel(エクセル) 差し込み印刷がうまくいかない 2 2022/07/29 12:26
- Visual Basic(VBA) エクセルVBAで以下のようなコードを書いたらエラーになりました。何処が間違っているの教えて? 1 2023/02/10 18:30
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 15:14
- Excel(エクセル) エクセル:シフト表条件付き書式色付けのカウント方法 3 2022/10/11 21:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCEL16進⇒浮動小数変換したい
-
16ビットの符号付固定小数点...
-
2ビット、3ビット、4ビットのグ...
-
6ビット(符号含む)の二進数
-
【有効数字について】 授業で、...
-
EXCELでの16進数取り出し、上...
-
計算に使うエクセルの数値の表...
-
エクセル2010で2進数の計算をす...
-
有効数字は最後答えを出すとき...
-
Oracle AL32UTF8でのバイトサイ...
-
PDFからワードへ→文字がくずれる
-
携帯電話の略語であるMBって英...
-
パソコン用語
-
CPU、Z80からステート数から...
-
1テラバイトに、CDが何枚はいる...
-
おねがいします。
-
GB と Gbの違いの意味
-
1TBHDDに音楽ファイルは何ア...
-
viで一括で行をつなげたい
-
K KB MB について詳し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL16進⇒浮動小数変換したい
-
エクセルVBAで xlOn xlOff の切替
-
エクセルでビット1をカウント J...
-
16ビットの符号付固定小数点...
-
2ビット、3ビット、4ビットのグ...
-
6ビット(符号含む)の二進数
-
情報科学
-
排他的論理和
-
先程+20の2の補数表現を質問さ...
-
データ量の単位について教えて...
-
ビット数と表現できる数の範囲...
-
浮動小数点の問題です。
-
SSDのデータがビット落ちにより...
-
基本情報処理技術者試験問題が...
-
基本情報技術者試験のビットに...
-
仮想通貨の取引所について
-
浮動小数点の表現(基本情報)
-
●ビットで表現できる状態は、最...
-
9ビットの2進数を符号付整数…
-
算術シフトについて
おすすめ情報