作者yantchen (球童Yanting)
看板NTUE-CS100
标题Re: [分享] 建中哥好威阿~~
时间Fri Sep 12 00:40:37 2008
※ 引述《cair (白色的黑猫)》之铭言:
: 最近再找十进位转二进位的C函式 (因为懒得自己写了:P)
: 上网google出来 好几个都写的不怎样
: 或是不合需求
: 结果找到一个范例看来很不错 又精简 我就先加入我的最爱
: 结果才发现网址是
: http://chchwy.blogspot.com/2007/11/blog-post_24.html
: 挖 建中哥网志耶!!!!
: 建中哥大大好威阿 >////////<
: PS.不过後来用了彦廷建议的 bitset函式这个更短 XDDD
: #include <bitset>
: int main() {
: double n = 923876533;
: bitset<sizeof(n) * 8> s(n);
: cout << n << " = " << s << endl;
: }
bitset 字面上是 a set of bits ( 一堆 bit )
bitset 是 C++ 提供一种用类似 array 来存 bit 的资料结构
存在里面的数字和存在int的一样可以做 and 、 or 、 not 、 xor 等 bit 运算
另外因为存成类似 array 所以可以对这个二进位数的某一位做运算 ( 或是改变值 )
例如11001 存在 bitset a 里面 想知道二进位第二位是多少 只要 cout<<a[1];(从0开始)
11001=25 存在 int b 里面的话 想知道二进位第二位就要用while取余数
用法 ( 宣告 )
bitset<长度> 变数(初始值);
长度宣告後固定 上面 sizeof(n)*8 是因为
sizeof 传回来的是 那个资料型态是多少 byte , byte 是 8 个 bit
变数(初始值) 这个语法是bitset的建构子
所以 bitset<8> a(25); 的 a 资料型态就是是 bitset
bitset 详细功能请参考
http://www.sgi.com/tech/stl/bitset.html
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.121.194.252