C语言练习 通过移位算法10进制转2进制
2022/1/6 17:38:04
本文主要是介绍C语言练习 通过移位算法10进制转2进制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
通过移位算法10进制转2进制
C语言实现
代码参考
C Primer Plus
第15章 位操作编程
书后实例,修改而来
代码如下
#include <stdio.h> #include <limits.h> //提供CHAR_BIT宏定义 char *itobs(long long int number, char *string); void showBits(const char *string); int main(int argc, char const *argv[]) { // CHAR_BIT是一个宏定义,定义了一个字节对应的位大小 char bin_str[CHAR_BIT * sizeof(long long int) + 1]; // 声明了一个临时的数组,用来存放字符1,字符0,因为最后还有一个'\0',所以 + 1 long long int number; puts("Please input long long int type number!,Another character to leave!"); while ((scanf("%lld", &number) & 01) == 1) { itobs(number, bin_str); showBits(bin_str); } puts("bye!"); return 0; } /** * @description 传入一个数字,和一个规定长度的字符串,向字符串中填充数字的二进制字符并返回 * @param number 传入的long long int 类型数据 * @param string 规定长度的(空)字符串,长度为 CHAR_BIT * sizeof(long long int) + 1 (+1为放置'\0') * @return string 返回填充好传入参数'string' 的二进制字符数组,可用于打印 */ char *itobs(long long int number, char *string) { const static long long int size = CHAR_BIT * sizeof(long long int); // 得到long long int的位大小 for (long long int i = size - 1; i >= 0; i--, number >>= 1) //这里必须为 >>=,也可以是 number = number >> 1; 得到的数字从后往前排序 { string[i] = (number & 1) + '0'; //这里 & 1(或者 & 01(八进制1)),01为掩码,将其他的(除了0号位的位)置0.得到的结果是数1/0,加上字符'0'得到字符'1'/'0' } string[size] = '\0'; return string; } /** * @description 用于打印数组中写好的二进制的字符 (4个为一组) * @param string 传入的字符串 * @return void */ void showBits(const char *string) { long long int i = 0; while (string[i]) { putchar(string[i]); if (++i % 4 == 0 && string[i]) { putchar(' '); } } putchar('\n'); }
这篇关于C语言练习 通过移位算法10进制转2进制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-23DevExpress 怎么实现右键菜单(Context Menu)显示中文?-icode9专业技术文章分享
- 2024-12-22怎么通过控制台去看我的页面渲染的内容在哪个文件中呢-icode9专业技术文章分享
- 2024-12-22el-tabs 组件只被引用了一次,但有时会渲染两次是什么原因?-icode9专业技术文章分享
- 2024-12-22wordpress有哪些好的安全插件?-icode9专业技术文章分享
- 2024-12-22wordpress如何查看系统有哪些cron任务?-icode9专业技术文章分享
- 2024-12-21Svg Sprite Icon教程:轻松入门与应用指南
- 2024-12-20Excel数据导出实战:新手必学的简单教程
- 2024-12-20RBAC的权限实战:新手入门教程
- 2024-12-20Svg Sprite Icon实战:从入门到上手的全面指南
- 2024-12-20LCD1602显示模块详解