社区
数据结构与算法
帖子详情
为了节省空间,怎样利用c++中如:int, char类型的每一个比特位
bcloud
2003-08-24 10:42:35
有没有什么函数可以直接知道某一位的值,以及直接对某一位置0或1。
谢谢。
...全文
179
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
打赏
举报
回复
用位域呀!
找本基础的书看看就知道了!
C++
使用string的大数加法运算(1)
本次项目目标:使用
C++
完成对于大数的加法运算,供大家参考,具体内容如下 项目要点 1.大数指的是远超long long
int
的数据 2.将大数用矩阵进行存储,并通过矩阵实现运算 3.本人采用字符串进行存储,应注意
char
的特点 比如:
char
a=161; cout<<(
int
)a; 此时会输出-95,而不是161,
char
类型
首个
比特
位
是作为正负号的 加法,此处只做自然数加法,因为存在负整数的话可以使用自然数减法来处理 运行截图及代码如下: #include
#include
#include
using namespace
C++
使用string的大数减法运算(2)
本次项目目标:使用
C++
完成对于大数的减法运算,供大家参考,具体内容如下 项目要点 1.大数指的是远超long long
int
的数据 2.将大数用矩阵进行存储,并通过矩阵实现运算 3.本人采用字符串进行存储,应注意
char
的特点 比如:
char
a=161; cout<<(
int
)a; 此时会输出-95,而不是161,
char
类型
首个
比特
位
是作为正负号的 减法,此处只做自然数加法,因为存在负整数的话可以使用自然数加法来处理,只需判断正负再看加减即可 运行截图及代码如下 #include #include #include usi
c++
byte 转
int
(
C++
基本
类型
整形)
c++
本身不存在BYTE关键字。但在
C++
中byte可以用unsigned
char
来表示,即无符号
类型
。那么如何将
C++
中的Byte转成整形呢? 其实在
C++
中,无论是BYTE转
int
还是
int
转BYTE,都是可以借助对应的方法的,即
c++
byte转
int
的方法是:bytesTo
Int
();反过来
int
整形转BYTE的方法是
int
ToByte();有了这个两个方法我们就可以把
c++
b
C++
int
型与
char
型辨析
字节也叫Byte,是计算机数据的基本存储单
位
,
一个
Byte是由8个bit组成,bit存储内容是0和1,它是最小的可寻址单元 ,1个字节等于8
位
二进制。1B(Byte)=8b(bit) 在ASCII码中,
一个
英文字母(不分大小写)占
一个
字节的
空间
,
一个
中文汉字占两个字节的
空间
,
一个
字节是8
位
,
一个
汉字编码两个字节是十六
位
。英文标点占
一个
字节,中文标点占两个字节。
一个
二...
C++
实现string输出
char
的二进制 && string按二进制
位
转
char
类型
C++
实现string输出
char
的二进制 && 二进制string按
位
转
char
类型
string按二进制
位
转
char
类型
string输出
char
的二进制 string按二进制
位
转
char
类型
示例代码: #include <string> #include <iostream> using namespace std; /* 8 Bytes 以0/1为内容的字符串按二进制转化成 1 Byte 的
char
*/
int
bin_to_dec_once(stri
数据结构与算法
33,010
社区成员
35,327
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章