社区
数据结构与算法
帖子详情
为了节省空间,怎样利用c++中如:int, char类型的每一个比特位
bcloud
2003-08-24 10:42:35
有没有什么函数可以直接知道某一位的值,以及直接对某一位置0或1。
谢谢。
...全文
262
11
打赏
收藏
为了节省空间,怎样利用c++中如:int, char类型的每一个比特位
有没有什么函数可以直接知道某一位的值,以及直接对某一位置0或1。 谢谢。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bcloud
2003-08-26
打赏
举报
回复
谢谢大家,长见识。
littlecpu
2003-08-25
打赏
举报
回复
Java是超强类型,int与boolean不自动转换
getBit的另一版本 i---值, pos---位置,
... ... ... 7 6 4 3 2 1 0
int GetBit(int i, int pos)
{
return (i >> pos) & 1;
}
boolean GetBit(int i, int pos)
{
return (i >> pos) & 1 == 1;
}
a0002
2003-08-25
打赏
举报
回复
32的程序啊!
a0002
2003-08-25
打赏
举报
回复
#include "stdafx.h"
#include <iostream.h>
#include <stdio.h>
struct CELL // Declare CELL bit field
{
unsigned bit01 : 1; //0000000000000000000000000000000?
unsigned bit02 : 1; //000000000000000000000000000000?0
unsigned bit03 : 1;
unsigned bit04 : 1;
unsigned bit05 : 1;
unsigned bit06 : 1;
unsigned bit07 : 1;
unsigned bit08 : 1;
unsigned bit09 : 1;
unsigned bit10 : 1;
unsigned bit11 : 1;
unsigned bit12 : 1;
unsigned bit13 : 1;
unsigned bit14 : 1;
unsigned bit15 : 1;
unsigned bit16 : 1;
unsigned bit17 : 1;
unsigned bit18 : 1;
unsigned bit19 : 1;
unsigned bit20 : 1;
unsigned bit21 : 1;
unsigned bit22 : 1;
unsigned bit23 : 1;
unsigned bit24 : 1;
unsigned bit25 : 1;
unsigned bit26 : 1;
unsigned bit27 : 1;
unsigned bit28 : 1;
unsigned bit29 : 1;
unsigned bit30 : 1;
unsigned bit31 : 1;
unsigned bit32 : 1; //?0000000000000000000000000000000
};
union IntToBit // Declare union type
{
int iNum;
struct CELL bits;
};
int main(int argc, char* argv[])
{
IntToBit iBlob;
cout << endl << "Enter your number: ";
cin >> iBlob.iNum;
cout << endl << "int number: " << iBlob.iNum << endl;
cout << endl << "binary: " << iBlob.bits.bit32
<< iBlob.bits.bit31
<< iBlob.bits.bit30
<< iBlob.bits.bit29
<< iBlob.bits.bit28
<< iBlob.bits.bit27
<< iBlob.bits.bit26
<< iBlob.bits.bit25
<< iBlob.bits.bit24
<< iBlob.bits.bit23
<< iBlob.bits.bit22
<< iBlob.bits.bit21
<< iBlob.bits.bit20
<< iBlob.bits.bit19
<< iBlob.bits.bit18
<< iBlob.bits.bit17
<< iBlob.bits.bit16
<< iBlob.bits.bit15
<< iBlob.bits.bit14
<< iBlob.bits.bit13
<< iBlob.bits.bit12
<< iBlob.bits.bit11
<< iBlob.bits.bit10
<< iBlob.bits.bit09
<< iBlob.bits.bit08
<< iBlob.bits.bit07
<< iBlob.bits.bit06
<< iBlob.bits.bit05
<< iBlob.bits.bit04
<< iBlob.bits.bit03
<< iBlob.bits.bit02
<< iBlob.bits.bit01
<< endl << endl;
getchar();
return 0;
}
bcloud
2003-08-25
打赏
举报
回复
我就是手头没有书嘛!
不过用>>,<<可以搞一搞。
不知还有没有其他的更好用的函数?
寻开心
2003-08-25
打赏
举报
回复
bool GetBit(int i, int v) {return v & (1<<i);}
void SetBit(int i, int v) { v |= 1<< i;};
void ClearBit(int i,int v){ v &= ~(1<<i);};
Smile_Tiger
2003-08-25
打赏
举报
回复
//对第4位置1
int a = 0x0100;
a = a | 0x10;
寻开心
2003-08-25
打赏
举报
回复
bool GetBit(int i, int var) {return var&(1<<i);};
void SetBit(int i, int var) { var |= 1<<i; };
void ClearBit(int i, int var ) { var &= ~(1<<i);};
Smile_Tiger
2003-08-25
打赏
举报
回复
int a = 0x0100; //第8位为1
assert(a&0x0100);
BlueSky2008
2003-08-25
打赏
举报
回复
同意happy__888。要是改成宏或内联函数就更好了。
a0002
2003-08-24
打赏
举报
回复
用位域呀!
找本基础的书看看就知道了!
Java中的八种基本数据
类型
boolean、
char
、
int
、short、long、float、double及注意事项
Java中的八种基本数据
类型
及注意事项 Java中基本数据
类型
只有八种:boolean、
char
、
int
、short、long、float、double; 其中六大数值
类型
可以按照如下顺序排序: byte < short <
int
< long < float < double boolean(布尔型) 1bit(
位
) 1Byte(字节) 取值范围:true、false 理论上boolean
类型
只有true和false两种逻辑值用
一个
位
就ok了,理由是虽然编译后1和0只需
字符型
char
和整型
int
之间的关系
在C语言中并没有
char
类型
的常量(但是在
C++
中却有,字符常量都是
char
类型
),其实是用
int
表示
char
,字符型与整型相比只是更加
节省
内存。(在所有数据
类型
中,
char
类型
占用的内存
空间
最少) 有符号的字符表示-128~127,无符号字符表示0~255。
char
相当于signed
char
还是unsigned
char
取决于编译器。 字符型数据在内存中是以二进制形式存放的,并不是真正的把
小阳同学八股学习日记-
char
和
int
之间的转换
因此,截断后的结果是1000被截断为
一个
char
类型
的值。但是,由于
char
类型
的范围通常是从-128到127(或0到255,取决于是否有符号),因此1000这个值超出了
char
类型
的表示范围。在
char
类型
中,如果
char
是带符号的,则 'A' 的二进制表示形式是 01000001,其中最高
位
(最左边的
位
)为0,表示正数。它可以存储范围内的整数值,通常占用4个字节(32
位
),其值的范围通常是从-2147483648到2147483647(如果是带符号的)或从0到4294967295(如果是无符号的)。
关于C和
C++
中的基本数据
类型
int
、long、long long、float、double、
char
、string的大小及表示范围
一、基本
类型
的大小及范围的总结(以下所讲都是默认在32
位
操作系统下): 【单
位
描述】 字节:byte
位
:bit 1. 短整型short: 所占内存大小:2byte=16bit; 所能表示范围:-32768~32767;(即-2^15~2^15-1) 2. 整型
int
: 所占内存大小:4byte=32bit; 所能表示...
初二账号密码,仅个人使用,请勿拿取!!!!!!!!!!!!!
初二账号密码,仅个人使用,请勿拿取!!!!!!!!!!!!!
数据结构与算法
33,026
社区成员
35,334
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章