ASCII码:一个英文字母(不分大小写)占一个字节的空间,一字节(Byte)是计算机信息技术用于计量存储容量和传输容量的一种计量单位,1个字节等于8位二进制。在微型计算机中,通常用多少字节来表示存储器的存储容量。
1个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。如一个ASCII码就是一个字节。
UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。
Unicode编码:一个英文等于两个字节,一个中文(含繁体)等于两个字节。
换算公式如下:
1KB=1024B=1024byte=1024bit 。
kB就是kBytes,Bytes就是“字节”的意思。
一般讲大小是用Bytes,大写的“B”,讲网络速率是用bit,注意是小写的“b”。
一个英文字母或一个阿拉伯数字就是一个字符,占用一个字节,一个汉字就是两个字符,占用两个字节。
:字节是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符。Byte数据类型(字节型)用一个字节(Byte)储存,可区别256个数字,取值范围:0到255。 Byte是从0-255的无符号类型,所以不能表示负数。
ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文 汉字占两个字节的空间。一个 二进制数字序列,在 计算机中作为一个数字单元,一般为8位二进制数,换算为 十进制。最小值0,最大值255。如一个ASCII码就是一个字节。
UTF-8编码:一个英文 字符等于一个字节,一个中文(含繁体)等于三个字节;Unicode编码:一个英文等于两个字节,一个中文(含繁体)等于 两个字节;符号:英文 标点占一个字节,中文标点占两个字节。举例:英文句号“”占1个字节的大小,中文句号“。”占2个字节的大小。
java的基本数据类型有:
1、布尔型(boolean)
取值范围:True 或 False
2、字节型(byte)
取值范围:0 - 255
3、短整型(short)
取值范围:-32,768 ~ 32767
4、整型(int)
取值范围:-2,147,483,648 ~ 2,147,483,647
5、长整型(long)
取值范围:-9223372036854775808~9223372036854775807
6、单精度浮点型(float)
负数范围:
-3402823E38 ~ -1401298E-45
正数范围:
1401298E-45 ~ 3402823E38
7、双精度浮点型(double)
负数范围:
-1797,693,134,862,32E308 ~
-4940,656,458,412,47E-324
正数范围:
4940,656,458,412,47E-324 ~
1797,693,134,862,32E308
8、字符型(char)
取值范围:'\u0000'~'\ufff'
扩展资料
任何数据类型的数组都需要 20 个字节的内存空间,加上每一数组维数占 4 个字节,再加上数据本身所占用的空间。数据所占用的内存空间可以用数据元数目乘上每个元素的大小加以计算。
例如,以 4 个 2 字节之 Integer 数据元所组成的一维数组中的数据,占 8 个字节。这 8 个字节加上额外的 24 个字节,使得这个数组所需总内存空间为 32 个字节。
参考资料:
最近在看深入理解计算机系统这本书,上面提到了在32位机器和64机器中int类型都占用4个字节。后来,查了The C Programming language这本书,里面有一句话是这样的:Each compiler is free to choose appropriate sizes for its own hardware, subject only to the restriction that shorts and ints are at least 16bits, longs are at least 32bits, and short is no longer than int, which is no longer than long意思大致是编译器可以根据自身硬件来选择合适的大小,但是需要满足约束:short和int型至少为16位,long型至少为32位,并且short型长度不能超过int型,而int型不能超过long型。这即是说各个类型的变量长度是由编译器来决定的,而当前主流的编译器中一般是32位机器和64位机器中int型都是4个字节(例如,GCC)。
这个int类型的大小到底是跟编译器有关,还是跟CPU有关,还是跟 *** 作系统有关?
所谓的16位32位64位系统是由cpu决定的,由机器指令的寻址、寄存器位数决定的
os受cpu的限制,但在32位的cpu下16位的os也可以跑(就向上面提到的所谓纯dos)
很多os是向前兼容的,就是使以前的程序也能运行,如果编译器本身是16位时代做的,那么os会提供一个模拟16位的子环境供这个编译器使用
int和void长度应该是一样的(16位的时候的20位的指针是两个16位错位加起来的)
非要转牛角尖的话,int只是语言定义里面的一个关键字,只对compiler可见,complier说它是几位就是几位,和os/cpu都没关系
永远都用sizeof是最安全的办法,但sizeof只是编译时常量,不能做到二进制兼容(移植)
说 int和void一样长只是因为在一般情况下它们都应该可以放到单个寄存器里,其实这样说很不确切,还是不要这样理解的好,说在xx位的cpu上int 是多少位只是因为这级别的cpu有对xx位数据进行 *** 作的单条指令(因为寄存器是xx位)(可能会有扩展指令,我不清楚,但关键看寄存器的位数),从而编 译器就图个方便把int做为xx位,这也不一定的,譬如以后64位机器出来了,可能编译器只是把long扩到64位,而int还是当作32,也挺合适的。
网上很多博客对这个有很多的解释,感兴趣可以去看看!
以上就是关于一个字占几个字节字节是什么全部的内容,包括:一个字占几个字节字节是什么、字符占用几个字节、java的基本数据类型有哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)