| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1498 人关注过本帖
标题:有没有人帮忙理解一下这道题的具体思路?最好是一点点解释?
取消只看楼主 加入收藏
从零学C
Rank: 1
等 级:新手上路
帖 子:14
专家分:1
注 册:2016-12-14
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
有没有人帮忙理解一下这道题的具体思路?最好是一点点解释?
程序代码:
#include <stdio.h>

unsigned long font;

char f = 0;   //id
unsigned long fm = 0xff<<f;  //id_mask

char s = 8;
unsigned long sm = 0x7f<<s;

char a = 15;
unsigned long am = 0x3<<a;

char b = 17;
unsigned long bm = 0x1<<b;

char i = 18;
unsigned long im = 0x1<<i;

char u = 19;
unsigned long um = 0x1<<u;

char align[3][7]={"left", "center", "right"};
char on_off[2][4]={"off", "on"};

int main(void)
{

 int n;

 char command[5];

 while(1)

 {
  printf("%-14s%-14s%-14s%-14s%-14s%-14s\n", "ID", "SIZE", "ALIGNMENT", "B", "I", "U");
  printf("%-14d%-14d%-14s%-14s%-14s%-14s\n", (font&fm)>>f, (font&sm)>>s, align[(font&am)>>a], on_off[(font&bm)>>b], on_off[(font&im)>>i], on_off[(font&um)>>u] );
  printf("f)change font    s)change size    a)change alignment\n");
  printf("b)toggle bold    i)toggle italic  u)toggle underline\n");
  printf("q)quit\n");
  gets(command);
  switch(command[0])
  {
   case 'f' : printf("Enter font ID (0-255): ");
      scanf("%d", &n);
      getchar();
      font = font & ~fm | n<<f;
      break;
   case 's' : printf("Enter font size (0-127): ");
      scanf("%d", &n);
      getchar();
      font = font & ~sm | n<<s;
      break;
   case 'a' : printf("Select alignment:\nl)left   c)center   r)right\n");
      gets(command); 
      switch(command[0])
      {
       case 'l' : font = font & ~am | 0<<a; break;
       case 'c' : font = font & ~am | 1<<a; break;
       case 'r' : font = font & ~am | 2<<a; break;
       default  : puts("error!");    break;
      }
      break;
   case 'b': font ^= 1<<b;
      break;
   case 'i': font ^= 1<<i;
      break;
   case 'u': font ^= 1<<u;
      break;
   default : puts(command);
      return 0;
  }


 }
}



还有一直搞不清楚unsigned long sm = 0x7f<<s;等等的这些是什么意思,是可以随便赋值的吗
搜索更多相关主题的帖子: 最好 color 
2016-12-14 15:46
从零学C
Rank: 1
等 级:新手上路
帖 子:14
专家分:1
注 册:2016-12-14
收藏
得分:0 
各路大牛有时间麻烦看看,在此谢过

一步一步,脚踏实地
2016-12-14 15:46
从零学C
Rank: 1
等 级:新手上路
帖 子:14
专家分:1
注 册:2016-12-14
收藏
得分:0 

一步一步,脚踏实地
2016-12-14 15:47
从零学C
Rank: 1
等 级:新手上路
帖 子:14
专家分:1
注 册:2016-12-14
收藏
得分:0 
回复 4楼 吹水佬
额这个意思我懂,就是不知道位操作的这些值比如0x7f  0xff   是可以随便定的吗

一步一步,脚踏实地
2016-12-14 16:05
从零学C
Rank: 1
等 级:新手上路
帖 子:14
专家分:1
注 册:2016-12-14
收藏
得分:0 
没有人????

一步一步,脚踏实地
2016-12-14 18:04
从零学C
Rank: 1
等 级:新手上路
帖 子:14
专家分:1
注 册:2016-12-14
收藏
得分:0 
那没有人能帮忙具体解释一下程序吗?

一步一步,脚踏实地
2016-12-16 12:57
快速回复:有没有人帮忙理解一下这道题的具体思路?最好是一点点解释?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015171 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved