C-03\浮点数转换与编码和补码
工程生成文件格式了解(常用)
| 工具 | 文件 | 作用 |
|---|---|---|
vc++6.0 |
.dsw |
最高级别的配置文件,记录了整个工作空间的配置信息,是一个纯文本的文件,创建新项目时自动生成 |
vc++6.0 |
.dsp |
配置文件,记录一个项目的所有配置信息,纯文本文件 |
vc++6.0 |
.plg |
实际是一个超文本文件,记录了Build的过程,是一个日志型文件(编译时的error和warning信息文件) |
vc++6.0 |
.opt |
.opt 工程关于开发环境的参数文件。如工具条位置等信息,也是一个配置文件 |
vc++6.0 |
.ncb |
缓存文件(无编译浏览文件) |
| vs | .sln |
解决方案文件 |
| vs | .vcxproj |
工程配置文件 |
| vs | .vcxproj.filters |
筛选器文件,指定哪些是头文件,哪些是source文件等等 |
| vs | .vcxproj.user |
本地化用户配置 |
移交文件时,将.cpp或.c、.h、.dsp、.dsw移交即可(VC++6.0)
将.cpp或.c、.sln、.vcxproj、.vcxproj.filters、.vcxproj.user移交即可(VS2019)
小知识点
- 逻辑和
UI分开,不要放在同一个函数中 - 一行代码一般不超过80列
- 移位比乘法指令周期短,速度快
浮点数转换与编码
浮点数进制转换(十进制转二进制)
整数部分:除以2取余,逆序排列
小数部分:乘2取整,顺序排列
浮点数编码
| 类型 | 符号位(最高位)S | 指数位E | 尾数位M |
|---|---|---|---|
| float | 0为正,1为负(1位) | 8位 | 23位 |
| double | 0为正,1为负(1位) | 11位 | 52位 |
其中float指数位以2^(8-1)-1 = 127 为标准(称为偏置值),128的二级制表示为1000 0000
double指数为以2^(11-1)-1 = 1023为标准(称为偏置值),1024的二进制表示为100 0000 0000

补码
求补是一种运算,不区分正负;补码是一种编码规则,区分正负
求补运算:将操作数按位取反后加1(对应汇编NEG指令)
补码:最高位为符号位,0表示正数,1表示负数
正数的补码和原码一样,负数的补码将原码除最高位外,其余按位取反(对应汇编not指令),然后+1
减法转为加法的原理
A - B; // A, B 设是一个字节大小, 则一共有 100 个值(100为十六进制值)
A + (100 - B) + 100; // negB = 100 - B
A + negB - 100;
// B + ~B = FF
// B + ~B + 1 = 100
// ~B + 1 = 100 - B
negB = notB + 1 // not 与 ~ 都是按位取反
C-03\浮点数转换与编码和补码的更多相关文章
- Mac下用命令行直接批量转换文本编码到UTF8
由于近期在Mac下写Android程序,下载的一些Demo由于编码问题源码里的汉字出现乱码,文件比较多,所以想批量解决下文件的编码问题. Mac下有以下两种方式可以解决: A. 文件名的编码:Mac的 ...
- javascript将浮点数转换成整数的三个方法
浮点数转换成整数方法有很多,本例为大家介绍常用的三个方法,如果读者想到其他好用方法,也可以交流一下 Summary 暂时我就想到3个方法而已.如果读者想到其他好用方法,也可以交流一下 parseI ...
- javascript浮点数转换成整数三种方法
将浮点数转换成整数方法有很多,分享三种常用方法. Summary 暂时我就想到3个方法而已.如果读者想到其他好用方法,也可以交流一下 parseInt位运算符Math.floor Math.ceil ...
- Java工具类-转换字符编码
package common; /** *字符串处理公用类 */ public class DealString { /** * 转换字符编码 由“iso-8859-1”西文转换为简体中文 */ pu ...
- delphi 浮点数转换成十六进制字符串的方法
我们在研究封包技术时,经常会碰到将浮点数转换成十六进制形式.比如在游戏中人物的座标,经常就用浮点数来表示.怎么将浮点数转换成十六进制字符串形式呢?下面我将写出其在DELPHI中的方法. 先 ...
- php转换字符编码为utf-8
php转换字符编码为utf-8 function strToUtf8($str){ $encode = mb_detect_encoding($str, array("ASCII" ...
- qt开发的小软件,可以递归转换文件编码(qt为了防止内存泄露所做的保护机制)
应用场景 当你下载别人的源码的时候,而别人的源码跟你自己电脑里面的编码不一致的情况下将会出现乱码,但是如果要一个个转换编码的话那么那样所需要花的时间太多,所以就有必要写一个软件递归遍历项目下面所有的文 ...
- python3 使用int函数将浮点数转换成整数
int函数将浮点数转换成整数需要注意的地方 >>> int(153)153>>> int(153.4)153>>> int(153.5)153&g ...
- InputStreamReader介绍&代码实现和转换文件编码_练习
InputStreamReader介绍&代码实现 package com.yang.Test.ReverseStream; import java.io.FileInputStream; im ...
- 在Linux下使用iconv转换字符串编码
在Linux下写C程序,尤其是网络通信程序时经常遇到编码转换的问题,这里要用到iconv函数库. iconv函数库有以下三个函数 123456 #include <iconv.h>icon ...
随机推荐
- java将流量KB转换为GB、MB、KB格式
/** * 转换流量格式为xxGBxxMBxxKB * @param flow 156165(xxxxxx) */ public String changeFlowFormat(String flow ...
- onps栈使用说明(3)——tcp、udp通讯测试
4. tcp客户端 在协议栈源码工程下,存在一个用vs2015建立的TcpServerForStackTesting工程.其运行在windows平台下,模拟实际应用场景下的tcp服务器.当tcp客户端 ...
- Redis的攻击手法
目录 Redis概述 Redis未授权 漏洞发现 漏洞验证 Redis写shell 漏洞利用 Redis写公钥 漏洞利用 主从复制RCE 漏洞简介: 漏洞利用 计划任务反弹shell 漏洞利用 Red ...
- Kubernetes基础_Service暴露的两种方式
一.前言 kubernetes集群中,pod是多变的,可以被新建或删除,而且ip不稳定,不方便集群外部访问,所以提供了一种新的资源 Service ,就是就是 a set of Pod ,作用是提供一 ...
- 【第7篇】AI语音交互原理介绍
本章主要介绍AI语音交互的原理,包括语音交互的流程以及各流程节点所涉及的相关知识,如语音采集.语音识别.自然语言处理.语音合成等. 2.1 AI语音交互 AI语音交互通俗点说就是人与机器间进行语音理解 ...
- elasticsearch的教程
简介: 假期自学了elasticsearch搭建与使用,写个博客记录一下 另外我电脑是linux,我懒得再说windows各种配置方法了,不过都是大同小异 1.软件的简介 ElasticSearch是 ...
- MISC中的图片修改宽高问题
在做CTF中MISC分类题目时,很常见的一个问题就是修改图片正确的宽与高 (此篇笔记中的内容以ctfshow中MISC入门分类为切入点,感兴趣的同学可以一边做一边有不会的看看,仅供参考,我是菜鸡) 曾 ...
- 【Java SE】Day02 数据类型转换、运算符、方法入门
一.数据类型转换 1.自动转换 取值范围小在运算时会提升为取值范围大的类型 byte+int=int int+double=double 转换规则:byte.short.char-->int-- ...
- 【每日一题】【双指针/栈/reverse】2022年2月19日-判断是否为回文字符串
给定一个长度为 n 的字符串,请编写一个函数判断该字符串是否回文.如果是回文请返回true,否则返回false. 字符串回文指该字符串正序与其逆序逐字符一致. 数据范围:0 < n \l ...
- 【每日一题】【将cur的next尾插到pre后面,尾插k-1次】25. K 个一组翻转链表-211115&220120
给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序. 进阶: 你可以设 ...