Ⅰ c语言中怎么把一个字节扩展成2字节
没有现成的方法, 自己写代码转换
#include <stdio.h>
// 调用时请保证t有不小于2*slen的空间
void b2w(const unsigned char *s, int slen, unsigned char *t)
{
unsigned char b;
for (int i=0; i<slen; i++)
{
b = s[i] & 0xF0;
b = (b & 0x80) | ((b>>1) & 0x20) | ((b>>2) & 0x08) | ((b>>3) & 0x02);
*t++ = (b>>1) | b;
b = s[i] & 0x0F;
b = (b & 0x01) | ((b<<1) & 0x04) | ((b<<2) & 0x10) | ((b<<3) & 0x40);
*t++ = (b<<1) | b;
}
}
// 按二进制显示字节数组
void showbytes(unsigned char *s, int slen)
{
for (int i=0; i<slen; i++)
{
unsigned char b = 0x80;
for (int k=0; k<8; k++)
{
putchar((b&s[i])? '1': '0');
b>>=1;
}
putchar(' ');
}
putchar('\n');
}
void main()
{
unsigned char s[] = {0x82, 0x41, 0xCB};
unsigned char t[sizeof(s)*2] = {0x00};
b2w(s, sizeof(s)/sizeof(s[0]), t);
showbytes(s, sizeof(s)/sizeof(s[0]));
showbytes(t, sizeof(t)/sizeof(t[0]));
}
Ⅱ C语言求字节
在vc中int是占4个字节
所以3个int
占12个
在tc中int占2个字节
就占6个
一般书上说的都是int
2字节,long
int
4字节,
vc
中int
和
long
int
都是4字节
Ⅲ c语言,构造类型求字节
char ch;
short int i;
double f;
求他所占的字节,答案竟然给的是16,
因为结构体 struct ,编绎器会自动对齐,
char 为1字节,short 为2字节,在编译到第2个元素 short时,会自动对齐2字节,即在 char 之后空一个字节,
编译到第3元素 double(8字节) ,又会自动对齐,前面再空4个字节(对齐8字节),所以总共就是16字节
解决办法也很简单,你把顺序调换一下就行了(比如 char , short, double 换成 double,short,char,或者其也试试)
Ⅳ C语言中什么叫字节,字符
字节就是Byte=8bit(位)是计算机存储单位。一个位可以存储0或1.一字节就是8个位。字符在C语言中有两种:
1.普通字符,用单引号括起来,如'k','l','a','0'都是(中文字一个算一个字符,但占字母等字符两倍的空间);
2.转义字符,前面加\号,一般是键盘上按不出的或特殊字符。如\\(\),\n(换行),\1(笑脸)。
定义字符变量:
char
name;
赋值:
name='h';
Ⅳ c语言怎样计算所占字节
主要是看变量定义的类型;
char占一个字节,int占四个字节,float占四个字节,double占8个字节;
当要注意的是在字符串中要加个'\0',要多算一个字节。
Ⅵ 急!C语言中字符与字节怎么算
字符是C语言中的一个术语,字节是内存大小的一个单位;字符占用内存空间的一个字节;/0是一个字符。
Ⅶ C语言中如何输出字节数
a)putchar函数:将指定的(表达式的值所对应的)字符输出到标准输出终端(屏幕)上。
格式:int putchar( int c );
例如:putchar(‘a’+3);打印的结果是d,是一个字符而不是数值。
a的ASCII码是97,加3是ASCII码表中100对应的字符就是d。
例如:putchar(99);打印的结果是c,代入一个数字打印出的是一个字符。
就如同代入的是学号,打印出来的是姓名一样。
b)putc函数:将指定的字符输出到指定标准输出流(屏幕或一个文件)中。
格式:int putc( int c, FILE *stream );
c)等价关系:putc的功能中包含putchar的功能。
putchar(c)等价于putc(c,stdout)。
例如:putc(‘A’,stdout)等价于putchar(‘A’)
(7)c语言中怎么加字节扩展阅读
C语言的字符对齐
1、数据类型自身的对齐值:对于char型数据,其自身对齐值为1,对于short型为2,对于int,float,double类型,其自身对齐值为4,单位字节。
2、复杂类型(如联合,结构体或者类)的自身对齐值:其成员中自身对齐值最大的那个值。
3、指定对齐值:#pragma pack (value)时的指定对齐值value。
4、数据成员、复杂类型(如联合,结构体或类)的有效对齐值:自身对齐值和指定对齐值中小的那个值。
Ⅷ C语言如何定义一个BYTE数据类型
c语言中没有byte这种类型,你说的byte可能是字节,可以用char型替代,char类型就是一个字节(8位)的存储空间,用于存储字符类型数据(也可存储-128~127之间的整数)
Ⅸ C语言中字节问题
‘a’是个字符型数据
在内存中占1个字节
“a“是个字符串
系统会自动在其后添加‘\0’所以”a“在内存中占两个字节