当前位置: 首页 > news >正文

外贸网站国际化怎么做失信人信息查询

外贸网站国际化怎么做,失信人信息查询,阳江市企业网站优化,百度seo服务公司目录 一个字节一定是8比特吗? 如何查看二进制文件前几个字节? 计算机存储单元bit 数据类型大小 sizeof char类型 short类型 int类型 long类型 long long类型 float类型 double类型 long double类型 char *类型 一个字节一定是8比特吗? 不是的,虽然…

目录

一个字节一定是8比特吗?

如何查看二进制文件前几个字节?

计算机存储单元bit

数据类型大小

sizeof

char类型

short类型

int类型

long类型

long long类型

float类型

double类型

long double类型

char *类型


一个字节一定是8比特吗?

不是的,虽然当今主流计算机系统,大部分都把一个字节定义为8比特,但计算机早期,真的不是这样。正因为如此,C语言存在CHAR_BIT宏,可以定义为非8数值.

  • 早期PDP-10字节是9位。
  • C语言早期并没有定义此标准,随着计算机系统不断统一,C99就引入了stdint.h, 有int8_t, int16_t之类的固定大小类型。

如何查看二进制文件前几个字节?

BOM检查是有的程序员经常干的事情,可以利用hexdump + head命令获取二进制文件的前面的字节。例如检查1.c文件二进制dump后的前面2行:
hexdump 1.c | head -2

0000000 bbef 23bf 6e69 6c63 6475 2065 733c 6474
0000010 6f69 682e 0a3e 6923 636e 756c 6564 3c20

可以看到开头的几个字节:EF BB BF, 是UTF-8 BOM的标志。

注意,Windows默认没有hexdump命令,需借助Cygwin的支持,当然也可以使用git工具里面的xxd命令。当然,有人写了Windows hexdump,可从如下地址下载:HEXDUMP for Windows (di-mgt.com.au)

计算机存储单元bit

大部分计算机最小内存操作单元是字节,JESD DRAM标准DQ位宽也经常按8 bits为单位。英文字母ASCII码虽然可以优化为7位,但7不是一个计算机的好数字,按8位算是最优空间。当然,CPU也有提供位操作指令可以读取或者更新特定的比特。

数据类型大小

编译型语言数据类型大小比较确定,可能有多种,但具体在特定平台特定编译器,大小一定是确定的。解释型语言或脚本处理数据类型更自由,默认看成“字符串”,在做数值运算自动转换。本文不过多讨论脚本类语言,它们不太关心这么多细节。

以如下标准的数据类型为例:

  • char / short / int / long (long) / float / (long) double

sizeof

  • C/ObjC/C++/C# 都提供sizeof运算符计算类型大小,尽管如此,编译型语言类型大小不是完全统一,甚至完全不是预期。
  • C/ObjC/C++ sizeof既是关键字又是运算符,此运算符是编译器计算而非运行期计算。比较有意思的是,虽然是编译期可计算,它不能用于宏条件编译判断。
  • Java没有sizeof运算符,因为它认为所有数据类型大小都是确定的,依然可以用<TYPE>.SIZE得到类型的比特数。
    Integer.SIZE返回32.
  • Python用getsizeof获取变量大小,包括对象的其他内存开销,如下并不是等于4或者8.
    sys.getsizeof(1)
  • 结构体的大小不一定等于所有成员大小之和,对齐影响最终的大小。
  • 空类大小是0吗? C++不为0,为了避免不同对象在同一个地址。

char类型

  • C/ObjC/C++ char类型为1字节,wchar_t一般为2字节。
    • ObjC NSString字符串内部默认是UTF-16编码,一个字符是2字节。
  • Java/C# char类型默认是Unicode字符,2字节。
    C# char类型和ushort类型范围是一样的。
  • Go有两种字符类型,byte是以往的1字节字符,rune代表4字节Unicode字符(相当于int32类型)。
  • Swift用Character代表字符类型,Swift 5之前默认字符是UTF-16或ASCII码存储,即一个字符可能是1字节或2字节,Swift 5之后(包含)默认是UTF-8编码,根据字符所属范围长度不等。

short类型

  • Fortran支持的整形之一,kind = 2代表2字节。
  • C/C++不直接规定它的长度,要求不大于int类型,不小于char类型。具体实现一般为2字节。
  • Java/C#中short固定为2字节。

int类型

  • int类型代表计算机系统处理整形最自然的长度,一般和数据寄存器长度一样。
  • 和short类型,Fortran kind=4即代表常规意义的标准的整形。
  • 和short类似,C/ObjC/C++不直接规定它的长度,要求不大于long类型,不小于short类型。具体实现一般为4字节。
    • 一般而言,16位系统int是2字节,32位系统int为4字节,而64位系统并不一定是8字节,因为有long的存在。
  • Java/C#固定为4字节。
  • Rust isize和usize类型长度取决于目标平台,i32和i64是固定大小。
  • 仓颉Int32固定4字节,Int64固定8字节。

long类型

  • C/C++规定long类型只要不小于int类型即可。
  • Fortran kind=8代表8字节整形,有点类似于64位系统long的长度(一般而言)。
  • 32位编译器,int和long一般都设置为4字节,另外Windows 16位环境下long也是4字节。
  • 64位编译器,Linux平台long一般提升到8字节,int一般保持为4字节;Windows平台long和int保持为4字节,用long long表示8字节。这是由于Win64使用LLP64模型,Linux 64位使用LP64.
    • 关于Windows 64位LLP64模型,可参考: Why did the Win64 team choose the LLP64 model?
  • Java/C#固定为8字节。

long long类型

  • 大部分编译器认为它不小于long类型即可,在64位系统一般为8字节。因为目前没有广泛使用128位系统,long long一般不会超过16字节。

float类型

  • 一般float类型定义为4字节。

double类型

  • 一般double类型定义为8字节。

long double类型

  • 一般long double类型至少不小于double类型,不同编译器环境有差异。
  • 不一定是16字节,可能保持和double类型一样为8字节,也可能是10字节。
  • 32位的gcc比较特殊,long double长度为12字节。gcc也提供编译选项选择long double的长度,例如: -m128bit-long-double或-mlong-double-80等等.
  • 带复数的complex long double类型一般是long double的2倍。

char *类型

  • C/C++对char *类型的处理不能完全按指针,要根据上下文。
    • sizeof("hello")返回5,而不是指针的大小4或者8.
    • 数组变量的sizeof返回数组大小,而非数组的影子指针大小。
      • 总结起来,当编译器能知道它的大小,就按那个大小,不能确定大小,按指针大小。


若文章对您有帮助,欢迎关注 程序员小迷 。助您在编程路上越走越好!

微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是 程序员小迷 (致力于C、C++、C#、Android、iOS、Java、Kotlin、Objective-C、Swift、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

http://www.dtcms.com/a/493890.html

相关文章:

  • 淘宝网站运营的工作怎么做网站建设的文章
  • 鄂尔多斯建设局网站oa管理系统项目文档
  • 自适应网站如何做mip网页wordpress评论框加
  • 重庆网站设计开发培训学校网站验收标准
  • 中国电力建设股份有限公司官方网站企业网站的建立主要用于企业内部发布信息
  • 糗事百科网站源码盐城快速建设网站找哪家
  • 做网站开发还会有前途吗好的外国设计网站推荐
  • 广东东莞免费网站制作公司义乌网站建设设
  • 短网站生成金坛网站优化
  • 做网站的公司主要是干啥wordpress导入导出
  • 中文域名指向同一个网站毕节地seo
  • asp.net做网站网站推广的方法有
  • 华企网站建设找活做的网站
  • 广东省住房和城乡建设厅网站进不去网站怎么做小程序
  • 生活家装饰官方网站京津冀协同发展的路径主要涉及
  • 登陆建设银行wap网站制作系部网站首页
  • wordpress获取站点标题虚拟主机便宜
  • 贷款网站源码下载wordpress 主机屋
  • 海西高端网站建设公司企业管理公司全是骗子
  • 自己做的网站怎么上传到网络公司网站做一年多少钱
  • 营销类网站设计 要点公司网站备案
  • 济南企业建站品牌摄影网站都有什么
  • 网站开发建设专业的公司三亚北京网站建设
  • 电影视频网站源码html自学
  • 苏州市城乡建设局网站首页flash做网站轮播图
  • 做城市网站的标语对网页设计的认识和理解
  • 做电商网站的步骤广州公司注册贴吧
  • 做电影网站收入瑞安哪里有做百度的网站
  • 做网站最小的字体是多少服务器网站怎么用
  • .net招聘网站怎么做wordpress无法建立目录