【落羽的落羽 C语言篇】数据存储简介
文章目录
- 一、整型提升
- 1. 概念
- 2. 规则
- 二、大小端字节序
- 1. 概念
- 2. 练习
- 练习1
- 练习2
- 三、浮点数在内存中的存储
- 1. 规则
- 2. 练习
一、整型提升
1. 概念
C语言中,整型算术运算至少是以“缺省整型类型”(int)的精度来进行的。为了达到这个精度,比int类型精度低的char和short等短整型类型的操作数,在使用前会转换成普通整型(int),这种转换被称为整型提升。
不太好理解,我们先看一个奇怪的现象:
char a = 'a';
char b = 'b';
char c = a + b;
printf("a的ASCII值:%d\n", a);
printf("b的ASCII值:%d\n", b);
printf("c的值:%d\n", c);
你觉得这段代码的结果是什么样的?c的值是不是a和b的ASCII值相加呢?
很反直觉的结果。
这是因为a和b是char类型的数据,a+b在进行计算前,要进行整型提升,然后执行加法运算得到一个占据4字节的int类型数据,但这个数据要存储在只有一字节大小的c里呀。所以结果会被截断,然后再存储进c中。具体规律我们再来看:
2. 规则
进行整型提升的规则是:
- 有符号整数的提升:补码高位补充符号位数
- 无符号整数的提升:补码高位补充0
以char类型为例,char也属于整型家族,是有符号的类型
假如有char a = -1;
,-1本来是一个十进制数,会占据四个字节,补码是11111111 11111111 11111111 11111110,但变量a只有八个比特位,只能存下前八位11111111。
如果之后的整数运算用到了变量a,就要先对a进行整型提升,11111111的符号位是1,高位补充1,结果是11111111 11111111 11111111 11111111(补码),即十进制数-1。
假如有char b = 1;
,1本来是一个十进制数,会占据四个字节,补码是00000000 00000000 00000000 00000001,但变量b只有八个比特位,只能存下前八位00000001。
如果之后的整数运算用到了变量b,就要先对b进行整型提升,00000001的符号位是0,高位补充0,结果是00000000 00000000 00000000 00000001(补码),即十进制数1。
上面的两个例子中,a和b进行整型提升后,它们的值仍是-1和1。
但假如有char c = 128;
,是什么结果呢?128本来是一个十进制数,会占据四个字节,补码是00000000 00000000 00000000 10000000,但变量c只有八个比特位,只能存下前八位10000000。这时,符号位变成了1。后续使用变量c进行整数运算时,要先对它整型提升,高位补充符号位1,结果是11111111 11111111 11111111 10000000(补码),是十进制数-128!
通过这个规律,我们可以总结出一个很重要的规则:由于整型提升的存在,char类型只有八个二进制位,char类型的变量只能存放-128 ~ 127的数,是一个循环。如果有char x = 127, y = x+1;
那么y的值实际上就是-128。
而若是unsigned char类型变量,由于是无符号类型,没有符号位,八个二进制位能表示出的最大十进制数是255,这种类型变量就只能存放0 ~ 255的数。
同样的道理,short类型的变量只能存放-32768 ~ 32767的数。
举个栗子:
char a = -128;
printf("%u",a);//%u是十进制的无符号整数
这段代码的结果是一个42亿多的数字。这是因为-128的补码本来是11111111 11111111 11111111 10000000,但a中只能存放前八位10000000。打印a也是一种对a的运算,要先进行整型提升。符号位是1,提升后是11111111 11111111 11111111 10000000。但%u说明这是一个无符号整数,最高位的1也要计算,最后这个32个二进制位换算成十进制就是42亿多的一个数。
二、大小端字节序
1. 概念
我们之前已经了解过整数在内存中的存储方式了——补码。
我们再来观察一个细节:
调试的时候,我们可以看到a中的0x11223344这个十六进制数是按着字节为单位,在内存中倒着存储的。(四个二进制数换算成一个十六进制数,也就是两个十六进制数占据一个字节)
超过一个字节的数据在内存中存储的时候,就会有存储顺序的问题,按照正序存放或是逆序存放,我们分为大端字节存储和小端字节存储模式:
-
大端字节存储模式:数据的低位字节内容保存在内存的高地址处,数据的高位字节内容保存在内存的低地址处。如数0x1123344在内存中,四个地址由低到高存放的分别是11 22 33 44。
-
小端字节存储模式:数据的低位字节内容保存在内存的低地址处,数据的高位字节内容保存在内存的高地址处。如数0x1123344在内存中,四个地址由低到高存放的分别是44 33 22 11。
回看上图,可以看出我的系统环境是小端字节存储模式。
2. 练习
练习1
百度的一道笔试题:设计一个小程序来判断当前机器的字节序
思路:我们将整数1存放到一个int变量中,看一看它四个字节中最地址最低的数据是什么。1的十六进制是0x00000001,四个字节由地址低到高:如果是大端应该是00 00 00 01,如果是小端就应该是01 00 00 00
#include<stdio.h>
int check()
{int i = 1;return *(char*)&i;
//char*强制类型转换&i,再解引用,就能找到i的四个当中地址最低的字节的内容,00或01
}int main()
{int ret = check();if(ret==1)//如果ret是1,说明i中的1存放形式是01 00 00 00,是小端printf("小端");else//如果ret是0,说明i中的1存放形式是00 00 00 01,是大端printf("大端");return 0;
}
练习2
这段代码的结果是什么
//X86环境,小端字节序模式
#include<stdio.h>
int main()
{int a[4] = {1,2,3,4};int* p1 = (int*)(&a+1);int* p2 = (int*)((int)a+1);printf("%x,%x",p1[-1],*p2);//%x是十六进制数,但VS打印会省略非0数前的所有0和xreturn 0;
}
三、浮点数在内存中的存储
1. 规则
浮点数类型包括float、double、long double等
浮点数在内存中的存储方式相对复杂:
根据国际标准IEEE 754,任意一个二进制浮点数V都可以表示成下面的形式:
V = (-1)S × M × 2E
- (-1)S 表示符号位,当S=0时,V为整数。当S=-1时,V为负数。
- M表示有效数字,M大于等于1,小于2。
- 2E 表示指数位。
举例,十进制的5.0,写成二进制是101.0,相当于1.01×22。按照上面V的格式,S=0,M=1.01,E=2。十进制的-5.0,写成二进制是-101.0,相当于-1.01×22。按照上面V的格式,S=1,M=1.01,E=2。
同时,IEEE 754还规定:
- 对于32位的浮点数(float),最高的1位存储符号位S,接着的8位存储指数E,剩下的23存储有效数字M。
- 对于64位的浮点数(double),最高的1位存储符号位S,接着的11位存储指数E,剩下的52位存储有效数字M。
前面说过,1<=M<2,也就是说,M的个位一定是1。因此,IEEE 754还规定,在计算机内部保存M时,默认这个数第一位总是1,因此可以被省略,只保存小数部分。比如保存1.012345时,只保存012345,等到读取的时候,再把第一位的1加上去。这样做的目的是节省一份空间,相对于可以多存储一位数字。
至于指数E,情况就比较复杂。
E是一个无符号整数(unsigned int)。如果E为8位,它的取值范围是0 ~ 255;如果E为11位,它的取值范围是0 ~ 2047。但是,科学计数法的E可以是负数。所以IEEE 754还规定,存入内存的真实值必须再加上一个中间数,对于8位的E中间数是127,对于11位的E中间数是1023。举个例子,如果一个浮点数的E是12,它保存成32位浮点数时,E会被保存成12+127=139,即10001011;它保存成64位浮点数时,E会被保存成12+1023=1035,即10000001011。
指数E从内存中取出还可以分为三种情况:
- E中既有0也有1:将E的二进制序列换算成十进制数,减去127(或1023),得到真实值
- E全为1:如果M不是0的话,V就是正负无穷大
- E全为0:V是无限接近于0的很小的数字
理解就好~
2. 练习
通过前面的知识,思考一下这段代码的结果是什么:
#include<stdio.h>
int main()
{int n = 9;float* p = (float*)&n;*p = 9.0;printf("%d", n);return 0;
}
答案是:
解析:
将float类型的9.0存入n的32的比特位时,要遵循32位浮点数的存储规则。9.0的二进制是1001.0,即(-1)0 × 1.001 × 23,那么,第一位的符号位E是0,有效数字M等于001后面再加20个0补全23位,指数E等于3+127等于130,即10000010 。
所以,9.0在内存中的存储是:0 10000010 00100000000000000000000,但如果要被当成整数来解析时,这就是整数在内存中的补码了,直接换算成十进制的结果就是1091567616。
本篇完,感谢阅读
相关文章:
【落羽的落羽 C语言篇】数据存储简介
文章目录 一、整型提升1. 概念2. 规则 二、大小端字节序1. 概念2. 练习练习1练习2 三、浮点数在内存中的存储1. 规则2. 练习 一、整型提升 1. 概念 C语言中,整型算术运算至少是以“缺省整型类型”(int)的精度来进行的。为了达到这个精度&am…...
linux----文件访问(c语言)
linux文件访问相关函数 打开文件函数 - open 函数原型:int open(const char *pathname, int flags, mode_t mode);参数说明: pathname:这是要打开的文件的路径名,可以是绝对路径或者相对路径。例如,"/home/user/…...
垂起固定翼无人机大面积森林草原巡检技术详解
垂起固定翼无人机大面积森林草原巡检技术是一种高效、精准的监测手段,以下是对该技术的详细解析: 一、垂起固定翼无人机技术特点 垂起固定翼无人机结合了多旋翼和固定翼无人机的优点,具备垂直起降、飞行距离长、速度快、高度高等特点。这种无…...
汽车电子零部件(15):AVM全景影像系统
概述: 使用ADAS全景监控(AVM)精确停车和操纵。这项先进技术采用多个摄像头,提供车辆周围环境的鸟瞰图。 360度全景监控系统: 360 AVM系统可以帮助驾驶员360度查看车辆周围的情况,避免发生碰撞。360 AVM系统由一个电子控制单元(ECU)和四个摄像头组成。ECU将处理四个摄…...
G口带宽服务器与1G独享带宽服务器:深度剖析其差异
在数据洪流涌动的数字化时代,服务器作为数据处理的核心,其性能表现直接关系到业务的流畅度和用户体验的优劣。随着技术的飞速发展,G口带宽服务器与1G独享带宽服务器已成为众多企业的优选方案。然而,这两者之间究竟有何细微差别&am…...
鸿蒙项目云捐助第十一讲鸿蒙App应用的捐助成功自定义对话框组件实现
在生活中,用户做了一个好事后,很多场合都会收到一份感谢。在捐助的行业也是一样的,用户捐出了一片爱心,就会收获一份温情。这里的温情是通过自定义对话框实现的。 一、通过自定义对话框组件实现捐款成功的信息页 这里用户捐款成…...
Elasticsearch-分词器详解
什么是分词器 1、分词器介绍 对文本进行分析处理的一种手段,基本处理逻辑为按照预先制定的分词规则,把原始文档分割成若干更小粒度的词项,粒度大小取决于分词器规则。 常用的中文分词器有ik按照切词的粒度粗细又分为:ik_max_word和ik_smart&…...
Android笔试面试题AI答之Android基础(3)
文章目录 1.谈一谈 Android 的安全机制一、系统架构层面的安全设计二、核心安全机制三、其他安全机制与措施 2.Android 的四大组件是哪四大?3.Android 的四大组件都需要在清单文件中注册吗?4.介绍几个常用的Linux命令一、文件和目录管理二、用户和权限管…...
酷黑金色配色 影片素材不过时 色彩丰富 电影主题html
本套大作业共计8个HTML页面,网页中包含:DIVCSS、下拉菜单栏、banner轮播图、图片放大效果、鼠标滑过效果、视频、小图标及按钮设计、登录注册页等,同时设计了logo;本作品花费大量时间去整理素材,大部分素材均使用Photo…...
《Go 语言变量》
《Go 语言变量》 介绍 Go 语言是一种静态类型、编译型的编程语言,由 Google 开发。它以其简洁的语法、高效的并发处理和强大的标准库而闻名。在 Go 语言中,变量是存储数据的基本单位,它们可以是各种数据类型,如整数、浮点数、布…...
Tool之Excalidraw:Excalidraw(开源的虚拟手绘风格白板)的简介、安装和使用方法、艾米莉应用之详细攻略
Tool之Excalidraw:Excalidraw(开源的虚拟手绘风格白板)的简介、安装和使用方法、艾米莉应用之详细攻略 目录 Excalidraw 简介 1、Excalidraw 的主要特点: Excalidraw 安装和使用方法 1、Excalidraw的安装 T1、使用 npm 安装: T2、使用 …...
Llama 3 模型系列解析(一)
目录 1. 引言 1.1 Llama 3 的简介 1.2 性能评估 1.3 开源计划 1.4 多模态扩展 ps 1. 缩放法则 2. 超额训练(Over-training) 3. 计算训练预算 4. 如何逐步估算和确定最优模型? 2. 概述 2.1 Llama 3 语言模型开发两个主要阶段 2.2…...
重拾设计模式--观察者模式
文章目录 观察者模式(Observer Pattern)概述观察者模式UML图作用:实现对象间的解耦支持一对多的依赖关系易于维护和扩展 观察者模式的结构抽象主题(Subject):具体主题(Concrete Subject…...
3-Gin 渲染 --[Gin 框架入门精讲与实战案例]
在 Gin 框架中,渲染指的是将数据传递给模板,并生成 HTML 或其他格式的响应内容。Gin 支持多种类型的渲染,包括 String HTML、JSON、XML 等。 String 渲染 在 Gin 框架中,String 渲染方法允许你直接返回一个字符串作为 HTTP 响应…...
回溯---java---黑马
回溯 概念 程序在运行过程中分成了多个阶段 通过某些手段,将数据恢复到某一阶段,称之为回溯 手段包括:方法栈、自定义栈 使用基本数据类型n public class Backtracking{public static void main(String[] args) {rec(1);}public void r…...
【数据结构】排序(附测试源码)
【数据结构】排序(附测试源码) 本节是数据结构排序版(不完整版,没有C语言版的哈希表) 1.排序概念: 1.1所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增…...
【翻译】大型 Transformer 模型推理优化
翻译原文:Large Transformer Model Inference Optimization | LilLog 原文作者:Lilian Weng 目录 方法概述蒸馏 Distillation量化 Quantization Transformer 量化的挑战训练后量化 (PTQ) 混合精度量化 Mixed-precision quantization细粒度量化量化的二…...
RabbitMQ概述
目录 RabbitMQ概述 前言 MQ MQ的作用 为什么选择RabbitMQ RabbitMQ的介绍 RabbitMQ概述 前言 Rabbit, 兔⼦的意思 互联⽹⾏业很多公司, 都喜欢⽤动物命名产品, 或者作为公司的logo, 吉祥物. ⽐如: 腾讯的企鹅, 京东的狗, 美团的袋⿏, 携程的海豚,阿⾥就更多了, 蚂蚁, ⻜…...
《PCI密码卡技术规范》题目
单选1 在《PCI密码卡技术规范》中,下列哪项不属于PCI密码卡的功能()。 A.密码运算功能 B.密钥管理功能 C.物理随机数产生功能 D.随主计算机可信检测功能 正确答案:D. <font style="color:#DF2A3F;">解析:</font> 单选 2 在《PCI密码卡技术规…...
AI开发:使用支持向量机(SVM)进行文本情感分析训练 - Python
支持向量机是AI开发中最常见的一种算法。之前我们已经一起初步了解了它的概念和应用,今天我们用它来进行一次文本情感分析训练。 一、概念温习 支持向量机(SVM)是一种监督学习算法,广泛用于分类和回归问题。 它的核心思想是通过…...
ECharts柱状图-柱图42,附视频讲解与代码下载
引言: 在数据可视化的世界里,ECharts凭借其丰富的图表类型和强大的配置能力,成为了众多开发者的首选。今天,我将带大家一起实现一个柱状图图表,通过该图表我们可以直观地展示和分析数据。此外,我还将提供…...
呼入机器人:24小时客户服务的未来趋势
呼入机器人:24小时客户服务的未来趋势 作者:开源大模型智能呼叫中心系统FreeAICC,Github:https://github.com/FreeIPCC/FreeAICC 在当今快节奏的商业环境中,客户服务已成为企业竞争的核心要素之一。随着人工智能技术…...
FFmpeg 安装教程(Windows 系统)
1. 前言 FFmpeg 是一个用于处理视频、音频等多媒体文件的开源工具包。它支持几乎所有的多媒体格式转换、剪辑和编辑,是开发者和多媒体工作者必备的工具。本文详细讲解如何在 Windows 系统上安装 FFmpeg 并进行基本配置。 2. 下载 FFmpeg 安装包 打开 Dpwnload FFmp…...
左神算法基础巩固--1
文章目录 时间复杂度常数时间的操作时间复杂度的定义时间复杂度的作用剖析递归行为和递归行为时间复杂度的估算 排序选择排序冒泡排序插入排序归并排序小和问题问题描述解题思路 快速排序荷兰国旗问题问题描述 堆排序堆结构大根堆小根堆 桶排序 二分二分搜索 ^的运用不用额外空…...
基于鲲鹏服务器的打砖块小游戏部署
案例介绍 鲲鹏服务器是基于鲲鹏处理器的新一代数据中心服务器,适用于大数据、分布式存储、高性能计算和数据库等应用。鲲鹏服务器具有高性能、低功耗、灵活的扩展能力,适合大数据分析、软件定义存储、Web等应用场景。 本案例将指导开发者如何在鲲鹏服务…...
STM32F407寄存器点灯
背景描述: 最近用32开发遇到问题不得不看寄存器了,就回顾了一下寄存器手册的查看方式和寄存器的使用方法; 上一次这么细致的记录还是在刚学习STM32的时候,之前觉得看寄存器手册以及配置寄存器是有点难度的事情,现在回头…...
电子电气架构 --- 队列刷写场景及刷写上位机浅析
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的…...
kubernates实战
使用k8s来部署tomcat 1、创建一个部署,并指定镜像地址 kubectl create deployment tomcat6 --imagetomcat:6.0.53-jre82、查看部署pod状态 kubectl get pods # 获取default名称空间下的pods kubectl get pods --all-namespaces # 获取所有名称空间下的pods kubect…...
换工作,如何退出微软账户???(删除注册表数据)
1.Winr 进入 输入. 2.删除 注意路径. 3.删除 注意路径. 4.效果如下,清空成功...
vscode+编程AI配置、使用说明
文章目录 [toc]1、概述2、github copilot2.1 配置2.2 使用文档2.3 使用说明 3、文心快码(Baidu Comate)3.1 配置3.2 使用文档3.3 使用说明 4、豆包(MarsCode)4.1 配置4.2 使用文档4.3 使用说明 5、通义灵码(TONGYI Lin…...
60.基于SSM的个人网站的设计与实现(项目 + 论文)
项目介绍 本站是一个B/S模式系统,个人网站是在MySQL中建立数据表保存信息,运用SSMVue框架和Java语言编写。并按照软件设计开发流程进行设计实现充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得基于SSM的网…...
myexcel的使用
参考: (1)api文档:https://www.bookstack.cn/read/MyExcel-2.x/624d8ce73162300b.md (2)源代码: https://github.com/liaochong/myexcel/issues 我: (1)m…...
CSDN外链失效3:
参考我之前的博客: 外链失效博客1:随想笔记1:CSDN写博客经常崩溃,遇到外链图片转存失败怎么办_csdn外链图片转存失败-CSDN博客 外链失效博客2:网络随想2:转语雀_md格式转语雀lake格式-CSDN博客 markdown…...
SSM 医院预约挂号系统:Vue 技术驱动下的设计与实现飞跃
3系统分析 3.1可行性分析 通过对本医院预约挂号系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本医院预约挂号系统采用SSM框架,JAVA作为开发语…...
如何在centos系统上挂载U盘
在CentOS上挂载NTFS格式的U盘,需要执行一系列步骤,包括识别U盘设备、安装必要的软件、创建挂载点,并最终挂载U盘。以下是在CentOS上挂载NTFS格式U盘的详细步骤: 一、准备工作 确认CentOS版本: 确保你的CentOS系统已经安装并正常运行。不同版本的CentOS在命令和工具方面可能…...
lshw学习——简单介绍
文章目录 简介核心结构扫描设备原理scan_abiscan_burnerscan_cdromscan_cpufreqscan_cpuidscan_cpuinfoscan_device_treescan_diskscan_displayscan_dmiscan_fatscan_fbscan_graphicsscan_idescan_ideraidscan_inputscan_isapnpscan_lvmscan_memoryscan_mmcscan_mountsscan_net…...
UI自动化概念+Web自动化测试框架
1.UI自动化测试概念:我们先明确什么是UI UI,即(User Interface简称UI用户界面)是系统和用户之间进行交互和信息交换的媒介 UI自动化测试:Web自动化测试和移动自动化测试都属于UI自动化测试,UI自动化测试就是借助自动化工具对程序UI层进行自动化的测试 …...
java: 无效的目标发行版: xx
java: 无效的目标发行版: xx 背景java: 无效的目标发行版: xx 在 Intellij 的修复 背景 这里单独针对Intellij开发工具对 “java: 无效的目标发行版: xx”错误的修复。 java: 无效的目标发行版: xx 在 Intellij 的修复 同一台电脑使用多个JDK的时候容易出现在运行程序时容易…...
【QSS样式表 - ③】:QSS常用属性
文章目录 QSS常用属性字体样式QSS示例 边框样式QSS示例 盒子模型背景颜色、背景图片background-QSS示例 border-imageQSS示例1QSS示例2 QObject属性QSS示例 QSS常用属性 字体样式 以上也可以直接写成一行: font: 字体风格 字体粗细 字体大小 字体名称;QSS示例 新…...
WPF Binding 绑定
绑定是 wpf 开发中的精髓,有绑定才有所谓的数据驱动。 1 . 背景 目前 wpf 界面可视化的控件,继承关系如下, 控件的数据绑定,基本上都要借助于 FrameworkElement 的 DataContext 属性。 只有先设置了控件的 DataContext 属性&…...
掌握Java分支结构:if和switch详解
在编程中,顺序结构确实只能按照代码的书写顺序依次执行,而无法根据条件进行判断和选择。为了实现程序根据不同情况执行不同代码块的功能,我们需要使用分支结构。Java提供了两种主要的分支结构来帮助开发者实现这一目标: if 语句&…...
ES学习Promise对象(九)
这里写目录标题 一、概念二、示例基本使用使用 Promise 对象封装Ajaxthen() 方法catch() 方法 一、概念 简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。Promise 是一个对象,Promise 提供统一…...
ssh 密钥对文件登录
首先提供我生成的密钥对【test-241222.pem】: -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAkrx1O 【.....】 -----END RSA PRIVATE KEY----- 1. 验证私钥格式 首先,确认test-241222.pem确实是有效的RSA私钥。你可以通过以下命令来验证(在Linux/Mac上): openssl …...
电流、电压,串联电路中,电流为什么处处相等?
电流是什么?串、并联中,电流的关系 飞书链接,看这个,格式更好,提供书籍下载 电流的本质定义: 电流 (I) 是 单位时间内,通过导体截面的电荷量。它的数学定义是: I Δ Q Δ t I \f…...
Python生成学生管理系统,使用qt组件,MySQL 数据库,-1
创建一个基于 Python 的学生管理系统,使用 Qt 组件(通过 PyQt5 或 PySide2)和 MySQL 数据库,是一个综合性的项目。以下是一个详细的指南,包括环境设置、数据库设计、Python 代码示例以及如何使用 Qt 设计用户界面。 #…...
接口测试Day03-postman断言关联
postman常用断言 注意:不需要手敲,点击自动生成 断言响应状态码 Status code:Code is 200 //断言响应状态码为 200 pm.test("Status code is 200", function () {pm.response.to.have.status(200); });pm: postman的实例 test() …...
微服务分布式(二、注册中心Consul)
首先我们需要安装consul,到官网下载Consul Install | Consul | HashiCorp Developer 在解压的consul目录下 执行启动命令 consul agent -dev 启动服务 -dev表示开发模式 -server表示服务模式 启动后在浏览器访问8500端口http://localhost:8500/可以看到服务管理界面 项目…...
sh cmake-linux.sh -- --skip-license --prefix = $MY_INSTALL_DIR
本文来自天工AI --------- 命令用于安装CMake的脚本,其中--skip-license参数表示跳过许可协议的显示,--prefix参数指定了CMake的安装目录。$MYINSTALLDIR是一个环境变量,应该在运行命令之前设置为您想要安装CMake的目录。 -------- sh xx…...
信创技术栈发展现状与展望:机遇与挑战并存
一、引言 在信息技术应用创新(信创)战略稳步推进的大背景下,我国信创技术栈已然在诸多关键层面收获了亮眼成果,不过也无可避免地遭遇了一系列亟待攻克的挑战。信创产业作为我国达成信息技术自主可控这一目标的关键一招,…...
文本图像多模态基础-clip的细节解读
目录 一、我写的目的 二、原文出处 三、方法和benchmark 3.1 方法原理 3.2 值得注意的代码细节 实际的损失函数计算: evaluation的计算: backbone的类型: 3.3 benchamrk 推理时的细节-benchmark比较: 经典benchmark对…...