字节,字符及占用内存大小情况

https://blog.csdn.net/liwenxia626/article/details/70808958

(一)“字节”的定义

字节(Byte)是一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量的一种计量单位。

(二)“字符”的定义

字符是指计算机中使用的文字和符号,比如1、2、3、A、B、C、~!·#¥%……—*()——+、等等。

(三)“字节”与“字符”

它们完全不是一个位面的概念,所以两者之间没有“区别”这个说法。不同编码里,字符和字节的对应关系不同:

ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。

UTF-8编码中,一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。

Unicode编码中,一个英文等于两个字节,一个中文(含繁体)等于两个字节。

符号:英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小。

UTF-16编码中,一个英文字母字符或一个汉字字符存储都需要2个字节(Unicode扩展区的一些汉字存储需要4个字节)。

UTF-32编码中,世界上任何字符的存储都需要4个字节。

字节 (byte):8个二进制位为一个字节(B),最常用的单位。计算机存储单位一般用B,KB,MB,GB,TB,PB,EB,ZB,YB,BB来表示,它们之间的关系是:
  1B(Byte字节)=8bit
  1KB (Kilobyte 千字节)=1024B,
  1MB (Mega byte 兆字节 简称“兆”)=1024KB,
  1GB (Giga byte 吉字节 又称“千兆”)=1024MB,
  1TB (Tera byte 万亿字节 太字节)=1024GB,其中1024=2^10 ( 2 的10次方)

用一个txt文档做实验
1000个汉字---utf-8编码格式---占用2.95k,接近3k。这是因为utf-8编码格式下1000个字符占3000字节,相当于3000B,接近3k。
---asci编码格式下,2k
---unicode编码格式下,2k

原文地址:https://www.cnblogs.com/fengff/p/9445082.html

时间: 2024-08-03 04:31:50

字节,字符及占用内存大小情况的相关文章

java对象占用内存大小计算方式

案例一: User public class User { } UserSizeTest public class UserSizeTest { static final Runtime runTime=Runtime.getRuntime(); public static void main(String[] args) { final int count = 100000; User[] us=new User[count]; long heap1 = 0; for (int i = -1;

Shell练习-计算一下所有进程所占用内存大小的和

ps 可以查看进程的内存占用大小,写一个脚本计算一下所有进程所占用内存大小的和.(提示,使用ps aux 列出所有进程,过滤出RSS那列,然后求和) #!/bin/bash #Calculate how much memory is occupied by this process #2015/07/22  ps aux |awk -F' ' '{(sum=sum+$6)};END{print sum}'

查看进程占用内存大小的几种方法

1. pmap -x pid 2. ps -aux | grep 进程名 ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep 进程名 3. top -d 1 -p pid 4. cat /proc/[pid]/status 查看进程占用内存大小的几种方法

PHP数组实际占用内存大小的分析

一般来说,PHP数组的内存利用率只有 1/10, 也就是说,一个在C语言里面100M 内存的数组,在PHP里面就要1G.下面我们可以粗略的估算PHP数组占用内存的大小,首先我们测试1000个元素的整数占用的内存: <?php echo memory_get_usage() , '<br>'; $start = memory_get_usage(); $a = Array(); for ($i=0; $i<1000; $i++) { $a[$i] = $i + $i; } $mid 

CentOS7 定时检测进程占用内存大小,执行重启进程操作(xjl456852原创)

在使用CentOS时,个别程序的进程会一直增大,直到宕机.但是这种程序本身有没有更好的版本使用(比如ngrok免费就这样,付费的就没这个问题),所以想写一个脚本定时检测一下这个程序的情况,决定是否需要重启,该重启时重启,没有启动则让他启动. 注:脚本名中最好不要包含ngrokd, 因为脚本执行时自己也会成为一个进程,获取原始ngrokd的进程大小就不能简写为grep "ngrokd"  ,而应改为全路径:grep "/usr/local/ngrok/bin/ngrokd&qu

C++中无数据成员的类的对象占用内存大小

结论: 对于没有数据成员的对象,其内存单元也不是0,c++用一个内存单元来表示这个实例对象的存在. 如果有了数据或虚函数(虚析构函数),则相应的内存替代1标记自己的存在. PS:以下代码均在win32控制台下运行. e.g.1 class A { public: void fun() { cout<<"A"<<endl; } }; void main() { A a; cout<<sizeof(a)<<endl; } 运行后输出1. e.

查询sql server占用内存的情况

se master go select * from sysperfinfo where counter_name like '%Total Server Memory (KB)%' go

Python 获得对象内存占用内存大小 sys.getsizeof

from sys import getsizeof class A(object): pass class B: pass for x in (None, 1, 1L, 1.2, 'c', [], (), {}, set(), B, B(), A, A()): print "{0:20s}\t{1:d}".format(type(x).__name__, sys.getsizeof(x)) NoneType 16 int 24 long 28 float 24 str 34 list

浅说数据类型占用的内存大小

看到有的资料说数据类型占用的内存大小跟操作系统有关,或者跟编译器有关,对于这方面,我也未研究的很深入,只说说我个人的理解 情景:修改某一游戏的玩家背包图鉴开启状态和宠物的三围 材料:安卓模拟器搭载Android 4.x的系统 ,内存修改器(烧饼或八门) 操作:使用烧饼修改器搜索 1920 的截图如上,可以看到1个DWBF就是一个int32 ,每个DBWF下有4个东西 分析:Android系统是32位,游戏的开发语言是C++,所以可知刚刚搜索的就是一个C++中的一个int,占四字节   下面再记录