C++ 的二进制语法与语义 | 您所在的位置:网站首页 › 二进制用b表示 › C++ 的二进制语法与语义 |
int i = 0b101010; // binary
int i = 052; // octal
int i = 42; // decimal
int i = 0x2a; // hexadecimal
2. 使用 strtol/strtoll/strtoq 函数,可以将一个字符串转换成整数,base 取 2 表示转换成二进制数。 #include long int strtol(const char *nptr, char **endptr, int base); long long int strtoll(const char *nptr, char **endptr, int base); 我在解密一些二进制数据的时候,用到过这个函数。先用正则表达式每八个数字一拆分 echo A_LONG_BINARY_STRING | sed -r 's/([01]{8})/\1 /g',然后利用空格作间隔符提取数字所代表的 ASCII 码,当然,你也可以用移位运算自己实现每八个数字一读的功能。 #include #include #include int main() { const char* raw = "01110101 01110011 01100101 00100000 01110111 01100101 01100100 01101110 01100101 01110011 01100100 01100001 01111001 00100000 01100110 01101111 01110010 00100000 01110100 01101000 01100101 00100000 01100001 01101110 01110011 01110111 01100101 01110010"; const char* begin; char* end = const_cast(raw); do { begin = end; long int byte = strtol(begin, &end, 2/*base*/); putchar(static_cast(byte)); }while(begin != end); return 0; }
|
CopyRight 2018-2019 实验室设备网 版权所有 |