C++int型如何转换成一个byte

比如,该int型为51,一个字节应该放得下,怎么转换呢?贴下源代码,谢谢!

C++int型变量转换成一个byte
c++是兼容c语言的,因此c语言的编程对c++也适用,
int型的变量变成字节型(Byte),可以使用强制转换,使用方法如下:
int a=120;
a=(char)a;
那么a就会转化成了字节型(Byte型)
值得注意的是,int是双字节型的数,变成单字节的时候,高字节的数会自动省去。
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-03-05
int占一个机器字长。在32位系统中int占32位,也就是4个字节,而在老式的16位系统中,int占16位,即2个字节。而c++标准中只限制规定shortshort是固定的2字节,long是固定的4字节
int是不定的,可能是short(比如tc),可能是long(比如vc).
int:默认是signed的,可以互换。
char:大多数char在visual
c++6.0中int、short、long型各占多少字节?
int
,
long
:
32bits
=
4bytes
short,
16bits
=
2bytes
敲代码
printf("%d,%d,%d这跟机器字长有关,在16位机中,int是2字节,在32位机中,int是4字节,c/c++标准要求变量占用的空间满足
long
>=
int
>=
short
>=
char
即可word,dword,byte,byte是我读windows程序里面涉及到的数据类型。可能c++里面int
x,
n;
n
=
sizeof(x);
n的值就是结果。
变量占内存字节c++标准只规定int型数据所占的字节数不大于long型,不小于short型。你说的在32位机器上int和long是相同的,都是32位。下面是《c++
primer》中的描述scanf(“%d
%ld”,&a,&b)中a,b的数具体怎么办?请举个实例数!short
int
带符号2字节短整形
-
32768
~
32767
unsigned
int
无符号4字节
可以看到byte和short的取值范围比较小,而long的取值范围太大,占用的空间多,基本上int可以满足我们的日常的计算了,而且int也是使用的最多的整型类型了。
第2个回答  推荐于2018-03-12
union B_I
{
unsigned char b[4];
int a;
} b_i;
int i;
b_i.a=51;
b_i.b就是你想要的本回答被网友采纳
第3个回答  2013-01-04
自动转换

int a=51;
char b=a;
http://baike.baidu.com/view/2886403.htm,百科看下,你最好还是多看看书
第4个回答  2013-01-04
int i = 51;
unsigned char b = i;本回答被提问者采纳

C++int型如何转换成一个byte
C++int型变量转换成一个byte c++是兼容c语言的,因此c语言的编程对c++也适用,int型的变量变成字节型(Byte),可以使用强制转换,使用方法如下:int a=120;a=(char)a;那么a就会转化成了字节型(Byte型)值得注意的是,int是双字节型的数,变成单字节的时候,高字节的数会自动省去。

C++中怎么把转义后的字符串转换为byte类型的数值
在C\/C++中,直接进行内存拷贝就可以了:BYTE s[8];memcpy(s,money,sizeof(double));int intMoney = (int)(money*10);memmove(s,intMoney,sizeof(int));需要注意的是根据使用逻辑,如果需要字节逆序(这个很奇怪,因为通常是int类型需要)还是要做之后那个循环。另外就是数据类型了,double是8字节...

C\/C++怎样将int类型数据转换成BYTE类型数据,最好有代码!谢谢
C++没有BYTE内置类型.但是可以通过字符串来实现。typedef bit8 char;string covert(bit8 a)\/\/ 为了简单处理,只处理一个字节。方便理解 { string result="0x";string high4,lower4;\/\/ 定义高4位和低4位 ...\/\/ 还是聪明的楼主自己来吧 return result;} ...

C++中的CString与byte的转换
include <stdio.h> int main() { char szValue[] = "0x11"; char ch[32]; int nValude = 0; sscanf(szValue,"%x",&nValude); \/\/十六进制转数字 sprintf(ch,"%d",nValude); \/\/数字转字符 printf("%d\/n",nValude); return 0; } ...

c++ 如何将int类型的数放到 BYTE类型的后2位(bit7,bit6),再把另一...
int类型通常是32位即4个byte是一个byte数组;同时int类型是按照big endian 大端模式高位在前,还是little endian小端模式低位在前,模式存储的。那么可以通过int数和0xFF000000与(&)然后右移(>>)24位取得第1个byte,和0x00FF0000与(&)然后右移(>>)16位取得第2个byte,和0x0000FF00与(&)然后右...

156 (int类型) 转byte为什么是-100
由于1byte为8bit ,所以转换为byte,符号位被丢弃(N个0也被丢弃), 结果为1 0011100B,此时,第一位符号位为1,为负。 由于负数按补码存储,所以转换为byte之后的真值为1 1100100(由补码求原码,按位取反末位加1),即-100。int数据类型:在C语系编程语言(C、C++、C#、Java等)中,是一种...

C++中的int和char之间的转换问题
首先你要清楚,在C++中int型占4个字节,而char类型只占1个字节,char类型是可以转化为int类型的,但int类型不一定可以转换为char类型。我对你这个问题的理解是,你想将0到9之间的数字转化为char类型的,或是将'0'-'9'之间的字符转化为int型的数字。你如果要用强制转换的话可以这样:(0的ASCII码...

c++ 中怎么把 void* 数据转换成 byte[] 形式? 现在的数据是这样的 void...
void* 可以转成任意指针 byte[] 实际等效于byte 所以转成byte*就可以了 byte* pbuff = (byte*)buffer;指针指向的数据长度都是不知道的,要外部告知 如果实在必须是一个数组,有长度的情况下,可以 byte pbuff[len];memcpy(pbuff, buffer, len);这样写第一len的大小有限制,具体多少不太清楚,...

在C++里怎么把char数组转换成byte数组
char和byte都是8位。char默认是signed还是unsigned看编译器,一般是signed也就是有符号char类型,范围为0-127.它的最高位是不用的,为0.byte范围0-255,。所以char转byte直接强制类型转换就可以,不会丢失数据

c++中只有0和1的string如何转byte输出?
using namespace std;void main(){ string a="10"; \/\/已知01字符串 int b=atoi(a.c_str()); \/\/转换为10进制数 char c[20],d[20],e[20];itoa(b,c,2); \/\/转换为2进制 itoa(b,d,8); \/\/转换8进制 itoa(b,e,16); \/\/转换16进制 ofstream file;file.open("f...

相似回答