我想使用一个有666位(bit)的数据,储存整数,怎么办?

极速小王子 2002-09-13 03:38:52
如标题
...全文
40 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Nack 2002-09-15
  • 打赏
  • 举报
回复
Y@@Y
(***) 晕~~
Nack 2002-09-15
  • 打赏
  • 举报
回复
是 typedef struct _bitchar
{
unsigned char bit1:1;
....
吧!
怎么和微软犯一个毛病,布丁倒是不少!
嘿嘿!
honeycombs 2002-09-15
  • 打赏
  • 举报
回复
改:
typedef _bitchar
{
unsigned char bit1:1;
unsigned char bit2:1;
unsigned char bit3:1;
unsigned char bit4:1;
unsigned char bit5:1;
unsigned char bit6:1;
unsigned char bit7:1;
unsigned char bit8:1;
}bitchar,BITCHAR;

honeycombs 2002-09-15
  • 打赏
  • 举报
回复
这样的定义可以实现对字符的位操作:

typedef _bitchar
{
unsigned char bit1:1;
unsigned char bit1:2;
unsigned char bit1:3;
unsigned char bit1:4;
unsigned char bit1:5;
unsigned char bit1:6;
unsigned char bit1:7;
unsigned char bit1:8;
unsigned char bit1:1;
}bitchar,BITCHAR;

.......
unsigned char onechar ;
bitchar *char1 ;
char *binchar="10111011";

char1=(bitchar*)&onechar ;

char1->bit1=binchar[0]-'0';
char1->bit2=binchar[1]-'0';
char1->bit3=binchar[2]-'0';
char1->bit4=binchar[3]-'0';
char1->bit5=binchar[4]-'0';
char1->bit6=binchar[5]-'0';
char1->bit7=binchar[6]-'0';
char1->bit8=binchar[7]-'0';

....
onechar 经过运算的到的数值就是二进制的10111011
十进制的187

honeycombs 2002-09-15
  • 打赏
  • 举报
回复
比如EXAMPLE结构定义了一个35bits的数据单元,
你可以用‘:’指定数据所占的数据位,
当然,unsigned char bit:7;表示一个7位的数据这样写是合法的,
如果写成unsigned char bit:9;定义一个9bits的数据是不妥的。
可以使用unsigned short bits:9;
但要注意的是短整型数据在Windows系列操作系统中是高位在前,低位在后的
处理起来麻烦些。

极速小王子 2002-09-15
  • 打赏
  • 举报
回复
详细些,看不懂啊!
honeycombs 2002-09-15
  • 打赏
  • 举报
回复
struce 改为 struct
唉,指法不过关啊!
YooY
(www)
honeycombs 2002-09-15
  • 打赏
  • 举报
回复
typedef struce _ONEBIT
{
unsigned char bit1:1 ;
}ONEBIT,*LPONEBIT

typedef struce _TWOBITS
{
unsigned char bit1:1 ;
unsigned char bit2:1 ;
}TWOBITS,*LPTWOBITS

typedef struce _EXAMPLE
{
unsigned char bit1:1 ;
unsigned char bit2:1 ;
unsigned short a ;
unsigned short b;
unsigned char bit35:1 ;

}EXAMPLE,*LPEXAMPLE
极速小王子 2002-09-15
  • 打赏
  • 举报
回复
我需要管理进位的问题吗?比如使用一个int类型的时候,他自动进位.9->10
leyouyou 2002-09-13
  • 打赏
  • 举报
回复
用数组喽
andy_lau 2002-09-13
  • 打赏
  • 举报
回复
高程辅导中有存储常整数的例子,不过使用数组来做的
futurewf 2002-09-13
  • 打赏
  • 举报
回复
我看你得自己定义一个数据类型了,windows时32位OS,现在最大的一个是32位。

WIN系统下的64位变量都是通过结构(高32,低32)来存储的,建议:


structure 结构名{
dword data[21];
};
每一个data[x]代表32位(4字节)。

祝顺利!

极速小王子 2002-09-13
  • 打赏
  • 举报
回复
我指的是如何创建这样一个类型变量

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧