- ベストアンサー
Excelでビット演算子?
Excelでビット演算子の 左シフト演算をさせることは でるでしょうか? 0xff<<8 の演算をさせたいのですが 何か関数はあるでしょうか?
- M-hirorinn
- お礼率5% (38/727)
- Windows XP
- 回答数1
- ありがとう数9
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
エクセルにシフト演算子は無いような気がしますが,nビットシフトさせたいのであれば,2のn乗を掛けたら良いと思います。 例:A1セルを8ビット左シフトしたい場合 =A1*2^8 例:A1セルを8ビット右シフトしたい場合 =int(A1/2^8)
関連するQ&A
- ビット演算で00000001と1の頭に0を付ける?
https://www.grapecity.com/japan/powernews/column/clang/019/page02.htm ビット演算子 表1にCのビット演算子を掲げておきます。ビット演算とは言っても、扱う値はバイト単位などCの一般的な整数のデータ型です。ビット演算子は、それらの値をビット単位で計算します。 ビットシフト演算(<< >>)~2倍と1/2 例えばunsigned char型の1は、2進数では"00000001"という形のビット列(ビットパターン)になります。これを1桁左にずらす(シフトする)と"00000010"となります。ずらしてあふれた左端の0は消え、空いた右端には0が入ります。 "00000001"は10進数の「1」、"00000010"は10進数の「2」です。つまり、ビット列を左に1桁シフトすると値は2倍になるのです。 ----------------------------------------- 以上ですが、C言語の、ビット演算の解説の抜粋です。ビット演算はまだ覚えたてですが、"00000001"整数1の頭にわざわざ、0を沢山 つける目的は何なのでしょうか!? よろしくお願いします。
- ベストアンサー
- C・C++・C#
- ビット演算子
掲題の件ですが、 ネットを調べていて他の言語のビット演算子は見つけることができたのですが、Visual Basicでのビット演算子が見つかりませんでした。 ビットシフトだと A >> 2 A << 2 などとかかれていたのですが、これは使えるのでしょうか? よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- ビット演算子について
JAVAを現在勉強中なのですが。 ビット演算子のところで悩んでいます。 「~」のビットごとの補数とはいったいどういうものでどういった時に使うのか、 「>>」と「>>>」のシフトの違いがなんなのかよくわかりません。 簡単でいいので教えていただければ嬉しいです。
- ベストアンサー
- Java
- シフト演算子について・・・意味がわかりません(T_T)
左シフト演算子<<は最上位ビットの上位を削除して最下位に0を追加、 右シフト演算子>>は最下位ビットが削除されて、最上位ビットに最上位ビットと同じ値が補充される、 論理右シフト>>>は最下位ビット削除され、最上位に0が補充される。 と、ここまではわかりました・・・ ある問題で int n = -1>> 31; でnはいくつになるか?というのがあったんですが、 解説の意味がわかりません。 回答はー1です。 「>>演算子によるシフトでは符号ビットが拡張される」 意味がわかりません・・・(@_@) 「>>>演算子であったなら、符号ビットがゼロになるのでN=1となる」 え・・・???!!! ふごーびっと??? シフト演算子ですから、 「-1の31こ右にビットをシフトする」 んだな・・・と思ったところ、 まったくどう考えてよいのかわからず、 回答を見たところ、余計わからなくなりました。 だれかたすけてください(T_T)
- ベストアンサー
- Java
- 【C言語】シフト演算による乗算
正の整数を二つ読み込み、乗算をシフト演算によって行いたいです。 プログラムを作ったのですが、動きません・・・。強制終了されます。 (例)53×25=53×(2^4+2^3+2^0) =(53を左に4ビットシフト)+(53を左に3ビットシフト)+(53を左に0ビットシフト) http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4803.txt どこが悪いのでしょうか・・・。
- ベストアンサー
- C・C++・C#
- ビット演算を学びたい
a &= 2; a |= 2; a ^= 2; a ~= 2; a <<=2; a >>=2; みたいな感じでビット演算が使われているソースを 良く見るのですが、いまいちビット演算で何をしているのかが 分かりません。 参考書などには文字通りビットをいじるような旨のことが書いてあります。 (こちらにも同じようなことが http://www9.plala.or.jp/sgwr-t/c/sec14.html) こういうので何となくは分かるのですが、 実際にこれを何に使えるか、実践ではどのように使うのかが なかなか見えてきません。 このビット演算を私のような者でも実際のプログラムで使いこなせるように なれるようなサイトや書籍の提示、あるいはサンプルのプログラムなどで ご指導いただけたらと思います。
- ベストアンサー
- C・C++・C#
- ビット演算について
以下のプログラムを作成して、int型、char型、long型のAND演算・OR演算の結果の違いを見ました。 実行結果からchar型だけ結果の表示の仕方が他と異なっています。 一般的に、バイト数では、 char(1バイト) < short(2バイト) < int(4バイト) のはずなのに、出力結果は、 char(0xffffffff) > short(0xff) = int(0xff) となっていて、charが一番大きく?、shortとintが同じ結果? のようにみえてしまいよくわかりません。 私は、ビット演算が苦手なので、根本的に考え方が間違っているのかも しれませんが、どうしてこのような出力結果となるのか教えてください。 プログラム #include <stdio.h> #include <stdlib.h> int main() { int xi = 0x7F, yi=0x80; int stri1 = xi&yi; int stri2 = xi|yi; printf("** int **\n"); printf("%p\n",stri1); printf("%p\n\n",stri2); char xc = 0x7F, yc=0x80; char strc1 = xc&yc; char strc2 = xc|yc; printf("** char **\n"); printf("%p\n",strc1); printf("%p\n\n",strc2); short xl = 0x7F, yl=0x80; short strl1 = xl&yl; short strl2 = xl|yl; printf("** short **\n"); printf("%p\n",strl1); printf("%p\n\n",strl2); return(0); } 出力結果 ** int ** 0x0 0xff ** char ** 0x0 0xffffffff ** short ** 0x0 0xff
- ベストアンサー
- C・C++・C#