TA的每日心情 | 汗 2024-10-15 10:05 |
---|
签到天数: 372 天 [LV.9]以坛为家II
|

楼主 |
发表于 2014-3-2 13:46:31
|
显示全部楼层
用for循环实现,并增加用户输入提示:- /*
- 编写一个函数输出整数的二进制表示
- 1、64位编译器中由于整数在内存中所占的字节数为8,所以共计32位;
- 2、基本算法是通过末位与1进行位与运算得出二进制值,辅助右移运算将所有的位循环右移到末位,逐个输出;
- 3、通过与4取余运算,美化输出格式(0000 0000 0000 ...形式)
- 4、用单独一个函数实现功能
- */
- #include <stdio.h>
- void printBinary(int number) {
-
- for (int i = 31; i >= 0; i--) { // 循环32次,为方便后面的计算,从[31-0]闭区间
-
- printf("%d", number >> i & 1); // 利用循环条件中的值,从右移31位到右移0位,逐个输出
-
- if (i % 4 == 0) { // 每输出4位后,加补一个空格 美化输出格式
- printf(" ");
- }
-
- }
-
- printf("\n");
- }
- int main() {
- int n = 0;
-
- printf("请输入一个整数:");
-
- scanf("%d", &n);
-
- printf("该整数在内存中的二进制表示为:\n");
-
- printBinary(n);
-
- return 0;
- }
复制代码 示例结果:- 请输入一个整数:255
- 该整数在内存中的二进制表示为:
- 0000 0000 0000 0000 0000 0000 1111 1111
复制代码
|
|