实时搜索: long int 几个字节

long int 几个字节

611条评论 1478人喜欢 1040次阅读 604人点赞
1、char ch="A"这个语句在6.0里面是报错的,而在2013里面却显示是正确的。
char ch='AB'也是一样,6.0报错,2013显示正确,这是为什么?
2、关于intgen long int,是不是在6.0里面int是两个字节,long是四个字节,而在2013里面他们的额字节长度是一样的?

我现在在学C语言,电脑系统装的是win8.1,不能装VC6.0,无奈装了2013,但是目前学下来,感觉课程学的跟在2013上操作的有好多出入,,该怎么办。。 , #include<stdio.h>
main()
{<...

C语言如何打印int long double 结构体变量各个字节的内: #include <stdio.h>
int main(void){
int a=15;
long float b=123.1234567;
double c=12345678.1234567;
char d='p';

printf("a=%d\n", a);
printf("a(%%d)=%d, a(%%5d)=%5d, a(%%o)=%o, a(%%x)=%x\n\n",a,a,a,a); // %% 可以输出 %

printf("a=%f\n", b);
printf("b(%%f)=%f, b(%%lf)=%lf, b(%%5.4lf)=%5.4lf, b(%%e)=%e\n\n",b,b,b,b);

printf("c=%f\n", c);
printf("c(%%lf)=%lf, c(%%f)=%f, c(%%8.4lf)=%8.4lf\n\n",c,c,c);

printf("d=%c\n", d);
printf("d(%%c)=%c, d(%%8c)=%8c\n",d,d);
return 0;
}

自己跑一下试试就明白了

51单片机中怎么将uchar data access[5];转换为int数字格式?: int一般为4个字节,你的uchar data access[5]有5个字节,怎么对也会多一个字节。
你自己搞清楚到底是要舍弃哪一个字节,或者头或者尾
(1)简单做法
data = *((int *) &(access[0])); // 取0,1,2,3
data = *((int *) &(access[1])); // 取1,2,3,4
(2)上述方法没考虑到对齐和字节序,为了对齐,通用做法是逐字节拼
取0,1,2,3, 大端字节序
data = ( ((int)access[0]) << 24) & 0x0ff000000 )
| ( ((int)access[1]) << 16) & 0x000ff0000 )
| ( ((int)access[2]) << 8) & 0x00000ff00 )
| ( ((int)access[3]) << 0) & 0x0000000ff )

取0,1,2,3, 小端字节序
data = ( ((int)access[3]) << 24) & 0x0ff000000 )
| ( ((int)access[2]) << 16) & 0x000ff0000 )
| ( ((int)access[1]) << 8) & 0x00000ff00 )
| ( ((int)access[0]) << 0) & 0x0000000ff )
取1,2,3,4, 大端字节序
data = ( ((int)access[1]) << 24) & 0x0ff000000 )
| ( ((int)access[2]) << 16) & 0x000ff0000 )
| ( ((int)access[3]) << 8) & 0x00000ff00 )
| ( ((int)access[4]) << 0) & 0x0000000ff )
取1,2,3,4, 小端字节序
data = ( ((int)access[4]) << 24) & 0x0ff000000 )
| ( ((int)access[3]) << 16) & 0x000ff0000 )
| ( ((int)access[2]) << 8) & 0x00000ff00 )
| ( ((int)access[1]) << 0) & 0x0000000ff )

socket套接字的运用: int socket(int family,int type,int protocol);
功能:创建一个通过tcp/ip协议发送和接收网络数据的Socket
返回值:成功返回Socket描述符,失败<0
参数:family:指明协议族(AF_INET,AF_INET6AF_LOCAL,AF_ROUTE,AF_KEY)
type:指明套接字类型:(SOCKET_STREAM,SOCK_DGREAM,SOCK_SEQPACKET,SOCK_RAW)
protocol: 指明协议类型,0时由family和type一起决定
Linux 内核将Socket描述符和文件进行统一管理,所以可以将Socket看做特殊文件
int close(int sockfd)
功能:关闭套接字
返回值:成功返回0,失败<0
参数:已经发开的套接字描述符

family决定地址类型:
当为AF_LOCAL(相当于AF_UNIX)
struct sockaddr_un
{
sa_family_t sun_family; /* AF_UNIX */
char sun_path(); /* pathname */
}
当为AF_INET时:
struct sockaddr_in
{
short int sin_family ; /* AF_INET */
unsignde short int sin_port ; /* port number */
struct in_addr sin_addr ; /* Internet address */网络字节序
}

struct in_addr
{
unsigned long int s_addr ; //IP地址为 32 位 IPV 4 地址 网络字节序
}
后续Socket为了兼容更多类型,采用一下结构:
struct socket
{
short int sin_family;//协议族
char sa_data[14];//协议制定地址
}
在使用这些函数时候我们可以强制类型转换

主机字节序:某个给定的主机系统所用的字节序,它由cpu决定
网络字节序:网络协议制定的字节序,网络协议使用大端字节序来传送多字节整数
unsigned long int htonl(unsigned long int hostlong)
unsigned short int htons(unsigned short int hostshort)
unsigned long int ntohl(unsigned long int netlong)
unsigned short int ntohs(unsigned short int netshort)
备注:h代表host n代表network s代表short l代表long

常用字节操作:
void *memset(void *dest,int ch,size_t len)
void *memcpy(void *dest,const void *src,size_t nbytes)
int memcmp(const void *ptr1,const void *ptr2,size_t nbytes)
void bzero(void *dest,size_t nbytes)等价于memset(dest,0,nbytes);

十进制与32位地址转换:
int inet_aton(const char *strptr,struct in_addr *addrptr)//字符串有效返回1,否则为0
char *inet_ntoa(struct in_addr inaddr)
注: struct in_addr inaddr 均指网络字节序32位ip地址
inet_ntoa 函数的结果位于静态数据区
域名与地址转换:
struct hostent *gethostbyname(const char *hostname);
struct hostent *gethostbyaddr(const char *addr,size_t len,int family)//addr是struct in_addr

关于 VC6.0跟VC2013里面的区别疑惑: 2013里char ch="A"是报错的,而且这个也不符合规范。char ch=‘AB’;这个是符合规范的。
int 和long现在都是4字节,这个是由编译器决定的,不同的编译器所支持的数据类型是有些差别的。
现在4字节int都有点吃力了,如果还是采用2字节int也太不与时俱进了。
不要在这些上面太过计较。教材上的不一定是对的,考试看教材,码代码就要根据编译器来定了。
我从官方上看到的int主流就是4字节的。现在大家讨论的是64位整型了。

int short long有什么区别?: short -- 固定16位
long -- 固定32位
int -- 不同编译环境不一样,可能16位,也可能是32位

C语言求字节字节: 在vc中int是占4个字节 所以3个int 占12个
在tc中int占2个字节 就占6个
一般书上说的都是int 2字节,long int 4字节,
vc 中int 和 long int 都是4字节

整型数据类型中的byte .short .int .long有什么区别?如题 谢谢了: 数值的保存范围... byte是一字节 short一般是两字节 int是四字节 long也是四字节... (上面说的是VC编译的,这个多少字节和编译有关系的...在TC下又有所不同)

  • dnf男法职业哪个好

    五月天的队长怪兽的真名叫什么?: 本名:温尚翊  别名:怪兽   英文名:Wen,Monster  生日:1976年11月28日  生肖:龙  出生地:新竹  身高:168cm  体重:62kg  血型:A型  星座:射手座  嗜好:运动  乐器:吉...

    206条评论 1484人喜欢 1442次阅读 460人点赞
  • pscc调整边缘在哪

    用手机查看图片的详细信息,里面的宽度长度是指像素大小2048*1656吗像素: 长*宽 ...

    997条评论 5429人喜欢 6114次阅读 984人点赞
  • 20楼为什么还有蚊子

    inventor打孔后怎么修改: inventor打孔有相关的打孔参数,孔径参数,深度参数,还有相关一些标准参数可选,你要修改孔的参数的话只要双击浏览器栏里对应的孔,就可以随时修改孔的参数了。一下是用inventor绘制的真空注胶机3D图纸。以上回答...

    647条评论 6520人喜欢 5607次阅读 339人点赞
  • mac如何杀毒

    [Error] 'pow' was not declared in this scope是哪里错误: 调用库函数pow,需要加一条包含语句:#include<math.h> ...

    440条评论 4782人喜欢 1492次阅读 716人点赞
  • nba2k16小节是谁

    dnf80版本我有鬼泣刺客机械魔道那个后期刷远古异界给力?我比较喜欢单刷远古!: 异界这种地方单刷就需要一个各方面都比较均衡的职业,不能存在明显的短板,而且生存能力较强1需要有持续攻击的能力,具有压制怪物的能力2需要有瞬间爆发力3需要有无敌技能4有一定的控制能力5能够召唤一些东西代替自己,如蠕动1...

    572条评论 1251人喜欢 1203次阅读 499人点赞
  • gnomon cg场景设计有几个教程

    膝盖弹响,医生说筋萎缩,叫我做下蹲运动,靠谱吗?: 你说的膝盖有弹响,说是筋萎缩的医生讲的对,实际是韧带弹响,主要是因为你打了两个月石膏,造成了你的腿部肌肉和韧带萎缩,当你做下蹲动作时会发生响声,只要你锻炼一下是可以恢复的。 ...

    618条评论 4064人喜欢 4408次阅读 346人点赞
  • 1000亿怎么用

    inventor约束点怎么约束在曲线上: 重合约束 ...

    695条评论 6431人喜欢 5586次阅读 872人点赞