二进制bitset
1 // bitset 2 3 #include<iostream> 4 #include<bitset> 5 #include<string> 6 7 using namespace std; 8 9 void main() 10 { 11 bitset<8> mybit(255);// 主要用于位操作 12 13 for(int i=0;i<8;i++) 14 { 15 cout << mybit[i] << endl;// 1111 1111 16 } 17 18 //----------------------------------------- 19 20 char ch = -1; 21 bitset<8> mybit(ch); 22 for(int i=0;i<8;i++) 23 { 24 cout << mybit[i] << endl;// 1111 1111 25 } 26 27 cin.get(); 28 } 29 30 //------------------------------------------------------------------------ 31 32 void main() 33 { 34 float fl = 19.875; 35 36 cout << (void*)&fl << endl; 37 38 bitset<32> mybit(fl);// bitset 一般情况下不要用于处理浮点数据,因为 无效,原因是默认会转换为整数 39 for(int i=31;i>=0;i--) 40 { 41 cout << mybit[i] << endl;// 1111 1111 42 } 43 44 cin.get(); 45 } 46 47 //------------------------------------------------------------------------ 48 49 void main() 50 { 51 int fl = 19.875; 52 53 cout << (void*)&fl << endl; 54 55 bitset<32> mybit(fl);// bitset 一般情况下不要用于处理浮点数据,因为 无效 56 for(int i=31;i>=0;i--) 57 { 58 cout << mybit[i] << endl;// 1111 1111 59 } 60 61 cin.get(); 62 } 63 64 //------------------------------------------------------------------------ 65 66 void main() 67 { 68 int num = -3; 69 bitset<32> mybit(num); 70 for(int i=31;i>=0;i--) 71 { 72 cout << mybit[i] << endl;// 1111 1111 73 } 74 75 string str1 = mybit.to_string();// 转换为字符串 76 77 unsigned long long1 = mybit.to_ulong();// 转换为无符号长整型 78 79 unsigned long long llong1 = mybit.to_ullong();// 转换为无符号长长整型 80 81 cout << "str1= " << str1 << endl; 82 83 cout << "long1= " << long1 << endl; 84 85 cout << "llong1= " << llong1 << endl; 86 87 mybit.reset();// 清0 88 mybit.set(3,1);// 设置二进制位,将下表3号位置的二进制设置为1 89 str1 = mybit.to_string() 90 cout << "str1= " << str1 << endl; 91 92 cin.get(); 93 }
长风破浪会有时,直挂云帆济沧海
posted on 2015-06-14 15:43 Dragon-wuxl 阅读(132) 评论(0) 收藏 举报
浙公网安备 33010602011771号