基础单位
位
位是最基本的概念,它的英文名字叫(bit),是计算机中最基本的单位。只有逻辑0和逻辑1
字节
Byte,是由八个位组成的一个单元,也就是8个bit组成1个Byte。
一个字节最大的表示数据应该是111111,10进制表示就是255,16进制表示就是FF
基本数据类型
limits.h
#define _INC_LIMITS#include <vcruntime.h>#pragma warning(push)#pragma warning(disable: _VCRUNTIME_disABLED_WARNINGS)_CRT_BEGIN_C_HEADER#define CHAR_BIT 8 //char类型的位数为8,1个字节#define SCHAR_MIN (-128) //最小值#define SCHAR_MAX 127 //最大值#define UCHAR_MAX 0xff //#ifndef _CHAR_UNSIGNED#define CHAR_MIN SCHAR_MIN#define CHAR_MAX SCHAR_MAX#else#define CHAR_MIN 0#define CHAR_MAX UCHAR_MAX#endif#define MB_LEN_MAX 5#define SHRT_MIN (-32768) //short类型的最小值#define SHRT_MAX 32767 //short类型的最大值#define USHRT_MAX 0xffff#define INT_MIN (-2147483647 - 1) //int类型的最小值#define INT_MAX 2147483647 //int类型的最大值#define UINT_MAX 0xffffffff#define LONG_MIN (-2147483647L - 1) //long类型的最小值#define LONG_MAX 2147483647L //long类型的最大值#define ULONG_MAX 0xffffffffUL#define LLONG_MAX 9223372036854775807i64 //long long类型的最大值#define LLONG_MIN (-9223372036854775807i64 - 1) //long long类型的最小值#define ULLONG_MAX 0xffffffffffffffffui64#define _I8_MIN (-127i8 - 1)#define _I8_MAX 127i8#define _UI8_MAX 0xffui8#define _I16_MIN (-32767i16 - 1)#define _I16_MAX 32767i16#define _UI16_MAX 0xffffui16#define _I32_MIN (-2147483647i32 - 1)#define _I32_MAX 2147483647i32#define _UI32_MAX 0xffffffffui32#define _I64_MIN (-9223372036854775807i64 - 1)#define _I64_MAX 9223372036854775807i64#define _UI64_MAX 0xffffffffffffffffui64#ifndef SIZE_MAX// SIZE_MAX deFinition must match exactly with stdint.h for modules support.#ifdef _WIN64#define SIZE_MAX 0xffffffffffffffffui64#else#define SIZE_MAX 0xffffffffui32#endif#endif#if __STDC_WANT_SECURE_LIB__#ifndef RSIZE_MAX#define RSIZE_MAX (SIZE_MAX >> 1)#endif#endif_CRT_END_C_HEADER#pragma warning(pop) // _VCRUNTIME_disABLED_WARNINGS
计算机的整型有符号数有三种表示方法,原码、反码、补码。
三种表示方法均有符号位和数值位两部分,符号位都是用“0”表示“正数”,用“1”表示“负数”;而数值位三种表示方法各不相同:
原码:
直接将二进制按照正负数的形式翻译成二进制就可以
反码:
将原码的符号位不变,数值位按位取反即可
补码:
反码+1即可
无符号位的整数原码、反码、补码相同;有符号位的整数原码、反码、补码不相同。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/291024.html