unsigned

数据库——数据类型(6)

╄→尐↘猪︶ㄣ 提交于 2019-12-27 18:38:09
存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的。 1.数值类型 1.1 整数类型:存储年龄,等级,id,各种号码等 有符号与无符号 有符号 create table t1 (x tinyint); 无符号 create table t1 (x tinyint unsigned); 为整型类型指定宽度时,仅仅只是指定查询结果的显示宽度,与存储范围无关,存储范围已经指定,无法修改 int类型不指定显示宽度的话默认为11,和数据类型有关 对整型类型来说,没必要指定显示宽度,使用默认的就ok 1.2 浮点类型:存储薪资,身高,体重,体质参数等 float[(m,d)] [unsigned] [zerofill] 单精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数。m最大值为255,d最大值为30 double[(m,d)] [unsigned] [zerofill] 双精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数。m最大值为255,d最大值为30 精确度:随着小数的增多,精度比float要高,但也会变得不准确 decimal[(m[,d])] [unsigned] [zerofill] 准确的小数值,,m是数字总个数(负号不算),d是小数点后葛素。m最大值为65,d最大值为30. 精确度:随着小数的增多

Best way to convert a signed integer to an unsigned long?

放肆的年华 提交于 2019-12-27 17:09:45
问题 For certain hash functions in Java it would be nice to see the value as an unsigned integer (e.g. for comparison to other implementations) but Java supports only signed types. We can convert a signed int to an "unsigned" long as such: public static final int BITS_PER_BYTE = 8; public static long getUnsignedInt(int x) { ByteBuffer buf = ByteBuffer.allocate(Long.SIZE / BITS_PER_BYTE); buf.putInt(Integer.SIZE / BITS_PER_BYTE, x); return buf.getLong(0); } getUnsignedInt(-1); // => 4294967295

Best way to convert a signed integer to an unsigned long?

断了今生、忘了曾经 提交于 2019-12-27 17:09:32
问题 For certain hash functions in Java it would be nice to see the value as an unsigned integer (e.g. for comparison to other implementations) but Java supports only signed types. We can convert a signed int to an "unsigned" long as such: public static final int BITS_PER_BYTE = 8; public static long getUnsignedInt(int x) { ByteBuffer buf = ByteBuffer.allocate(Long.SIZE / BITS_PER_BYTE); buf.putInt(Integer.SIZE / BITS_PER_BYTE, x); return buf.getLong(0); } getUnsignedInt(-1); // => 4294967295

《C++之那些年踩过的坑(二)》

a 夏天 提交于 2019-12-27 14:00:29
C++之那些年踩过的 坑 (三) 作者:刘俊延(Alinshans) 本系列文章针对我在写C++代码的过程中,尤其是做自己的项目时,踩过的各种坑。以此作为给自己的警惕。 【版权声明】转载请注明原文来自: http://www.cnblogs.com/GodA/p/6569254.html 前言:   如果你看了我的上一篇博客: 《C++之那些年踩过的坑(二)》 我推荐你再看一遍,因为我对内容和排版做了一些修改,尤其是对说的不当的地方进行了修正。    最近挺忙,这篇存了好久,还没发出去,讲多了一下写不完。所以今天就随便聊点简单的东西—— unsigned type 。 一、unsigned type 会有什么坑?    你看到这篇的开头,就可能会想,无符号类型能有什么坑呀!那我们就直接了当一些吧! 1、小心可能陷入的死循环    其实单独的 unsigned type 你还是比较容易想明白的,可怕的就是它跟一些其它东西配合(auto),而你忽略了那就是 unsigned type 的时候,例如: #include <iostream> #include <cstdlib> int main() { char sz[] = "Hello world!"; for (auto i = strlen(sz) - 1; i >= 0; --i) { std::cout << sz[i];

__int64 的用法及注意事项

流过昼夜 提交于 2019-12-26 22:47:44
C++的64位整数[原]by 赤兔 在做ACM题时,经常都会遇到一些比较大的整数。而常用的内置整数类型常常显得太小了:其中long 和 int 范围是[-2 31,2 31),即-2147483648 2147483647。而unsigned范围是[0,2^32),即0 4294967295。也就是说,常规的32位整数只能够处理40亿以下的数。   那遇到比40亿要大的数怎么办呢?这时就要用到C++的64位扩展了。不同的编译器对64位整数的扩展有所不同。基于ACM的需要,下面仅介绍VC6.0与g++编译器的扩展。   VCVC6.0的64位整数分别叫做__int64与unsigned __int64,其范围分别是[-2^63, 2 63)与[0,2 64),即-9223372036854775808 9223372036854775807与0 18446744073709551615(约1800亿亿)。对64位整数的运算与32位整数基本相同,都支持四则运算与位运算等。当进行64位与32位的混合运算时,32位整数会被隐式转换成64位整数。但是,VC的输入输出与__int64的兼容就不是很好了,如果你写下这样一段代码: 1 __int64 a; 2 cin >> a; 3 cout << a; 那么,在第2行会收到“error C2679: binary ‘>>’ : no

Unix/C/C++--数据类型转换、格式化、cpy、精度

扶醉桌前 提交于 2019-12-26 19:30:37
Unix/C/C++--数据类型转换、格式化、cpy、精度 1 简介 2 等号赋值与memcpy 3 各类转换 3.1 unsigned char 2 float 3.2 unsigned char 2 string 3.3 float 2 char 3.4 float 2 unsigned char 4 指针传递 4.1 数组指针 4.1.1 示例一 4.1.2 示例二 5 格式化 5.1 格式化输出 5.2 设置小数点后面的位数 6 精度 6.1 float 参考 1 简介 各类场景下,需要各种数据转化。 2 等号赋值与memcpy strcpy等函数的逐字节拷贝,memcpy是按照机器字长逐字进行拷贝的,一个字等于4(32位机)或8(64位机)个字节。CPU存取一个字节和存取一个字一样,都是在一条指令、一个内存周期内完成的。显然,按字拷贝效率更高。 原来两者都是通过逐字拷贝来实现的。但是“等号赋值”被编译器翻译成一连串的MOV指令,而memcpy则是一个循环。“等号赋值”比memcpy快,并不是快在拷贝方式上,而是快在程序流程上。测试发现,“等号赋值”的长度必须小于等于128,并且是机器字长的倍数,才会被编译成连续MOV形式,否则会被编译成调用memcpy。而同样的,如果memcpy复制的长度小于等于128且是机器字长的整数倍,会被编译成MOV形式。所以,无论你的代码中如何写

使用异或运算交换两个任意类型变量

ε祈祈猫儿з 提交于 2019-12-26 18:21:30
前几天写了一篇文章是在C语言中 使用异或运算交换两个任意类型变量 ,其基础为使用^交换两个整数的算法: a ^= b; b ^= a; a ^= b; 如果你看明白这个算法,就会发现这样的规律: 一个数异或另一个数两次后,该数保持不变。 即: c = a^b; c = c^b; c == a; 这一规律就是使用异或运算对数据及文件进行加密处理的基本原理。 那就先贴下加密算法的代码: bool XorEncrypt(void* bufPtr, unsigned int bufSize, const char* key, unsigned int keySize) { if (!bufPtr || !key || keySize == 0) { return false; } char* ptr = (char*)bufPtr; unsigned int index; for (unsigned int i = 0; i < bufSize; i++) { index = i%keySize; ptr[i] ^= key[index]; } return true; } 代码中 bufPtr为需要加密的数据指针 bufSize为需要加密的数据长度 key为密钥数据指针 keySize 为密钥数据长度 再附上测试代码: void main() { const char* szKey =

数字图像处理------中值滤波

拟墨画扇 提交于 2019-12-26 08:53:28
一 中值滤波概念 中值滤波算法以某像素的领域图像区域中的像素值的排序为基础,将像素领域内灰度的中值代替该像素的值[1]; 如:以3*3的领域为例求中值滤波中像素5的值 图1 1)int pixel[9]中存储像素1,像素2...像素9的值; 2)对数组pixel[9]进行排序操作; 3)像素5的值即为数组pixel[9]的中值pixel[4]。 中值滤波对处理椒盐噪声非常有效。 二 中值滤波代码实现 项目工程: https://github.com/ranjiewwen/Everyday_Practice/tree/master/MedianFilter/MedianFilter/MedianFilter //中值滤波:本算法采用3*3的领域范围 void MyImage::MedianFilterOper() { //0. 准备:获取图片的宽,高和像素信息, int const num = 3 * 3; unsigned char pixel[num] = { 0 }; //保存领域的像素值 int width = m_bmpInfo.biWidth; int height = m_bmpInfo.biHeight; int widthbyte = (width * m_bmpInfo.biBitCount / 8 + 3) / 4 * 4; //保证为4的倍数 //相对于中心点

c语言文件

此生再无相见时 提交于 2019-12-26 01:26:02
c语言的文件操作 1.c文件概述 数据处理包括三部分,即数据 数据输入 、 数据加工 、 数据输出 ,由于数据输入输出有一些不方便的地方,如每次输入都要重新输入,输出无法实现永久性保存,所以,我们可以使用文件来解决数据的保存问题,才用文件的方式,把数据永久的保存在 外存 上。 2.文件型指针 当我们从磁盘读取文件时,需要文件型指针来访问文件,文件型结构定义在头文件“stdio.h”中,形式如下: typedef struct { short level ; /*缓冲区“满”或“空”的程度*/ unsigned flags ; /*文件状态标志*/ char fd ; /*文件描述符*/ unsigned char hold ; /*如无缓冲区不读取字符*/ short basize ; /*缓冲区大小*/ unsigned char * curp ; /* 数据缓冲区的读写位置*/ unsigned istemp ; /*临时文件,指示器*/ short token ; /*用于有效性检查*/ } FILE; 我们通过文件结构体FILE类型定义文件型指针变量,用于指向某一个文件的结构体变量,从而可以访问到需要的文件。 3.文件的打开与关闭 打开文件----fopen()函数 调用方式: FILE *fp; fp=fopen(文件名,使用文件方式); 文件使用方式一般只写只读“r

RFIN,RC522教程

那年仲夏 提交于 2019-12-26 01:10:52
B站视频教程(教程一般): https://www.bilibili.com/video/av73409046?p=14 相关文档资料(含代码): https://pan.baidu.com/s/1xEKybpw5C62c6P5rzpAJ-Q 主要看红框的文件 代码 mfrc522.h #ifndef __MRRC522_H__ #define __MRRC522_H__ ///////////////////////////////////////////////////////////////////// //函数声名 ///////////////////////////////////////////////////////////////////// void WriteRawRC(unsigned char Address,unsigned char value); unsigned char ReadRawRC(unsigned char Address); void SetBitMask(unsigned char reg,unsigned char mask); void ClearBitMask(unsigned char reg,unsigned char mask); char PcdReset(void); void PcdAntennaOn(void);