第 15 章 位操作(binbit)
程序员文章站
2022-06-18 16:25:48
1 /* 2 binbit.c -- 使用位操作显示二进制 3 */ 4 5 #include 6 #include //提供 CHAR_BIT 的定义,CHAR_BIT 表示每字节的位数 7 8 char* itobs(int, char*); 9 voi ......
1 /*------------------------------------ 2 binbit.c -- 使用位操作显示二进制 3 ------------------------------------*/ 4 5 #include <stdio.h> 6 #include <limits.h> //提供 CHAR_BIT 的定义,CHAR_BIT 表示每字节的位数 7 8 char* itobs(int, char*); 9 void show_bstr(const char*); 10 11 int main() 12 { 13 char bin_str[CHAR_BIT * sizeof(int) + 1]; 14 int number; 15 16 puts("Enter integers and see them in binary."); 17 puts("Non-numeric input terminates program"); 18 19 while (scanf("%d", &number) == 1) 20 { 21 itobs(number, bin_str); 22 23 printf("%d is ", number); 24 25 show_bstr(bin_str); 26 27 putchar('\n'); 28 } 29 30 puts("Bye"); 31 32 return 0; 33 } 34 35 char* itobs(int n, char *ps) 36 { 37 const static int size = CHAR_BIT * sizeof(int); 38 39 for (int i(size - 1); i >= 0; --i, n >>= 1) 40 ps[i] = (01 & n) + '0'; 41 ps[size] = '\0'; 42 43 return ps; 44 } 45 46 //以4位为一组,显示二进制字符串 47 void show_bstr(const char *str) 48 { 49 int i = 0; 50 while (str[i]) //不是空字符 51 { 52 fputc(str[i], stdout); 53 54 if (++i % 4 == 0 && str[i]) 55 fputc(' ', stdout); 56 } 57 }
推荐阅读
-
第8章 ZooKeeper操作
-
第5章 MapReduce操作
-
Excel判断身份证号码数据的第17或15位数字的奇偶性决定男女性别
-
Python Crash Course读书笔记 - 第15章:GENERATING DATA
-
第15章 使用EntityFramework Core进行配置和操作数据
-
下一代无线局域网(802.11n) 第4章 互操作性
-
阿里Java学习路线:阶段 1:Java语言基础-Java语言高级特性:第17章: IO操作深入:课时83:RandomAccessFile
-
阿里Java学习路线:阶段 1:Java语言基础-Java语言高级特性:第23章:反射与类操作:课时105:反射调用构造方法(含关系图-重要)
-
阿里Java学习路线:阶段 1:Java语言基础-Java语言高级特性:第17章: IO操作深入:课时82:管道流
-
JavaScript交互式网页设计 • 【第7章 jQuery操作 DOM】