实时搜索: int64占几个字节

int64占几个字节

515条评论 1964人喜欢 2664次阅读 213人点赞
比如说char是一个字节是8bit的 但是我们通常也说8位 但是在字长上面说有的系统是字长是16 位 32位 所以这个搞的我很混乱 还请前辈帮我理理 再次感谢!! , int型和long long型在32位和64位机器上是怎样的对齐方式? ...

你好,就是我想问一下,我的操作系统是64位的,但是为什么long和int还都是占4个字节呢。: 你说的太笼统了,你说说的 long 和 int 是在编译环境下吧

32位机和64位机的区别及基本数据类型占字节数: ① C/C++规定int字长和机器字长相同;
② 操作系统字长和机器字长未必一致;
③ 编译器根据操作系统字长来定义int字长;
由上面三点可知,在一些没有操作系统的嵌入式计算机系统上,int的长度与处理器字长一致;有操作
系统时,操作系统的字长与处理器的字长不一定一致,此时编译器根据操作系统的字长来定义int字长:"
比如你在64位机器上运行DOS16系统,那么所有for dos16的C/C++编译器中int都是16位的;在64位机器上
运行win32系统,那么所有for win32的C/C++编译器中int都是32位的"

类型 'System.Decimal' 的物件无法转换成类型 'System.Nullable`1[System.Byte]'。是啥情况:

不知道你们的问题解决了吗?但是以后如果有搜到该问题的 ,请参考以下网页链接这个

32位操作系统中,int,long占用4字节,short占用2字节…… 那64位的呢: 不同的编译器根据不同的 64 位模型有所不同,比如 Visual C++,从第一个支持 64 位的版本起,一直就是使用 LLP64 内存模型,也就是说,编译出的代码除了 longlong 和指针是 64 位,int 保持 32 位不变。
可以运行下代码得到结果。
#include <stdio.h>
int main()
{
printf("char: %d\n",sizeof(char));
printf("char *: %d\n",sizeof(char *));
printf("short: %d\n",sizeof(short));
printf("short *: %d\n",sizeof(short *));
printf("int: %d\n",sizeof(int));
printf("int *: %d\n",sizeof(int *));
printf("long: %d\n",sizeof(long));
printf("long *: %d\n",sizeof(long *));
}
在一台x86_64系统上运行结果:
char: 1
char *: 8
short: 2
short *: 8
int: 4
int *: 8
long: 8
long *: 8
在一台i386系统上运行结果:
char: 1
char *: 4
short: 2
short *: 4
int: 4
int *: 4
long: 4
long *: 4

1. sizeof返回的是byte值,1byte=8bit;
2. 指针类型表示的是内存寻址范围,所以在32位系统,8 * 4 = 32,而64位系统 8 * 8 = 64;这个是没错的;
3. C99标准规定:sizeof(short) <= sizeof(int) <= sizeof(long).

C语言问题 求位前辈 对于操作系统的字长是多少位 和C语言的关系不是很很了解: 首先需要知道的是CPU字长(机器字长),这个是硬件决定的,指cpu同时参与运算的二进制位数,机器字长直接决定着机器可寻址的虚拟空间地址大小。常见的机器字长有16位,32位,64位等。
其次是操作系统字长。 操作系统字长就是操作系统的位数,对于电脑操作系统来说,有32位64位两种。操作系统字长是软件的概念,依赖于硬件,但不一定相同。64位机器字长上可以安装32位的操作系统,但是反之则不行。即操作系统字长不可高于机器字长。
C语言的编译器是运行于操作系统之上的软件,所以编译器依赖于操作系统。编译器字长不可高于操作系统。
C语言编译器的字长,影响C语言的编译运行,由C语言编译器编译出的可执行文件的运行字长,不能高于编译器字长。
于是,综合这几个的关系,就是
C语言编译出的软件字长 ≤ C语言编译器字长 ≤ 操作系统字长≤机器字长。

int型和long long型在32位和64位机器上是怎样的对齐方式?: int(假定4字节)操作数跨越了4字节边界,long long(假定8字节)操作数跨越了8字节边界认为是未对齐的,所以,int型变量的地址是可以被4整除的,long long型变量的地址是可以被8整除的,总的来说,如果能被自身长度整除,则认为是对齐的,和机器位数没有必然联系,对齐的好处是存取速度得以提高,如果未对齐,则需要更多的机器周期来存取数据

32位和64位系统,C语言中char,short,int,long,char*,int*,int**各占多少字节:

1、在32位系统中:

char(1)字节

short(2)字节

int(2)字节

long(4)字节

char*(4)字节

int*(4)字节

int**(4)字节

2、在64位系统中:

char(1)字节

short(2)字节

int(4)字节

long(8)字节

char*(4)字节

int*(4)字节

int**(4)字节

扩展资料

在C++中short占2字节,int、float、long都占4字节,double占8字节。

指针长度和地址总线有关。因为指针记录的就是一个地址,那么32位的就是4字节,64位的就是8字节。

char占1字节,short占2字节,int、float、long都占4字节,double占8字节,任意类型的指针都占4个字节。

Office 32位与64位版本有什么区别:

功能上没差,主要系统决定你安装哪个版本,32位只能运行32位的软件 64位可以向下兼容32位软件因为日常应用软件基本都是32位的,只有某些重要办公软件设计软件啊才开发64位的。

由于操作系统内存分配的不同,导致软件开发过程中,需要编译不同版本的软件,此处以VS为例。


编译程序根据需要选择不同的编译环境:X86和win32位32位程序,X64为64位程序,可以选择不同的编辑条件形成不同位的软件。

代码中的基本的数据类型,会根据操作系统的位数分配内存大小:如int型在32位操作系统为4字节,在64位系统为8字节,因此在64位上对int型数据操作,编译生成32的程序,有可能导致int型越界,软件出现问题。

32位的程序在64位操作系统上运行,由于64位操作系统的寻址和偏移的问题,也有可能导致程序在运行过程中,计算结果与32位系统不一致。

64位操作系统理论上能够兼容32位和64位软件,32位操作系统不能运行64程序。

使用VS2010或VS2012开发的程序,强制编译为32位软件,在xp系统下运行有问题,有可能与.net

framework版本有关系,低版本的framework不能支持高版本framework的一些控件或类库。尝试安装高版本的framework解决问题


借用一下博客内容:


64位系统和32位有什么区别? 


64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而32bit只支持4G内存。

64位CPU一次可提取64位数据,比32位提高了一倍,理论上性能会提升1倍。但这是建立在64bit操作系统,64bit软件的基础上的。




什么是64位处理器?


之所以叫做“64位处理器”,是因为电脑内部都是实行2进制运算,处理器(CPU)一次处理数据的能力也是2的倍数。8位处理器、16位处理器、32位处理器和64位处理器,其计数都是2的倍数。一次处理的数据越大,该电脑处理信息的能力越来越大;因此64位处理在先天就比32位处理器具有快速的能力。那为什么不用更高级的128位处理器呢?因为位数越高,处理器芯片的设计也就越复杂,目前的技术水平暂时无法制造这么复杂的芯片。




64位处理器之失


※硬件———缺乏驱动程序,很多现有硬件无法使用


※软件———操作系统不是问题,但是软件出现不兼容难题




64位处理器之得


※硬件———更快的执行速度,更大的内存管理


※软件———最新的尖端软件首先出现在64位平台




数据类型对应字节数


程序运行平台
不同的平台上对不同数据类型分配的字节数是不同的。
个人对平台的理解是CPU+OS+Compiler,是因为:
1、64位机器也可以装32位系统(x64装XP);
2、32位机器上可以有16/32位的编译器(XP上有tc是16位的,其他常见的是32位的);
3、即使是32位的编译器也可以弄出64位的integer来(int64)。
以上这些是基于常见的wintel平台,加上我们可能很少机会接触的其它平台(其它的CPU和OS),所以个人认为所谓平台的概念是三者的组合。
虽然三者的长度可以不一样,但显然相互配合(即长度相等,32位的CPU+32位的OS+32位的Compiler)发挥的能量最大。
理论上来讲 我觉得数据类型的字节数应该是由CPU决定的,但是实际上主要由编译器决定(占多少位由编译器在编译期间说了算)。


常用数据类型对应字节数
可用如sizeof(char),sizeof(char*)等得出


32位编译器:


char :1个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)
short int : 2个字节
int:  4个字节
unsigned int : 4个字节
float:  4个字节
double:   8个字节
long:   4个字节
long long:  8个字节
unsigned long:  4个字节


64位编译器:


char :1个字节
char*(即指针变量): 8个字节
short int : 2个字节
int:  4个字节
unsigned int : 4个字节
float:  4个字节
double:   8个字节
long:   8个字节
long long:  8个字节
unsigned long:  8个字节

  • 20的有几个合数

    2018上海工伤十级赔偿多少: 一次性伤残补助金七个月本人工资,解除劳动合同后的两个一次性补助金一共是十个月本人工资,本人工资按本人平均月缴费工资计算上海市工伤保险实施办法第四十一条(致残七至十级待遇)  工伤人员因工致残被鉴定为七级至十级伤残的,...

    552条评论 3255人喜欢 2465次阅读 629人点赞
  • 2015田七多少钱

    P2P网贷备案是指什么: P2P备案就是地方监管部门颁发给网贷平台的合法经营牌照。2018年评判P2P网贷平台是否安全的标准当中,P2P备案是最重要的一个指标。 ...

    577条评论 4980人喜欢 1406次阅读 478人点赞
  • vipkid怎么样

    2018年p2p投资理财还可以吗?格林易贷是什么背景?: 这个你可以到行业第三方平台上查看一下,看平台的信息披露如何。作为投资人要具备可以判断平台是否靠谱的能力,给你几点建议吧:1.看平台资金是否有第三方托管,也就是银行存管,虽然说上了存管比一定就百分百靠谱,但这个目前相当...

    850条评论 2616人喜欢 1283次阅读 279人点赞
  • 157是谁

    2018上海找工作好找吗普工月薪多少: 好找,4000+ ...

    798条评论 3449人喜欢 3855次阅读 558人点赞