有符号数

char、short、int、long int 、 long long int


char 8bit
1个字节 0~0xFF
short int 16bit 2字节
0~0xFFFF
int 32bit 4个字节 0~0xFFFFFFFF
long
int 32bit 4个字节 0~0xFFFFFFFF
long long int 64bit
8个字节 0~0xFFFFFFFFFFFFFFFF

整数
其实,一般我们说无符号数,有符号数,都是针对十进制的说法.
char v1;
short int v2;
int v3;
long int v4;
long long
int v5;

#include<stdio.h>
#include<stdlib.h>
void
main() {
v1 = 1;
v2 = 2;
v3 = 3;
v4 = 4;
v5 = 5;

v1 =
0xFF;
printf("v1的16进制%x\n", v1);
printf("v1的16进制%u\n",
v1);
printf("v1的16进制%d\n",
v1);
system("pause");
}



无符号数和有符号数,在16进制的时候,赋值并没有太大的区别.
如果把一个8位的数给了16位或者32位的时候,拓展的时候有区别.

时间: 2024-11-03 21:52:58

有符号数的相关文章

例6:设缓冲区DATA中有一组单字节有符号数,以0为结束标志。写一个程序实现如下功能:把前5个正数依次送入缓冲区PDATA,把前5个负数依次送入缓冲区MDATA;如正数或负数不足5个,则用0补足。

自解: 1 DSEG SEGMENT 2 DATA DB -1,1,-2,2,3,-3,-4,4,5,-5,-6,6,0 3 PDATA DB 0,0,0,0,0 4 MDATA DB 0,0,0,0,0 5 DSEG ENDS 6 ;------------------------------------ 7 CSEG SEGMENT 8 ASSUME DS:DSEG,CS:CSEG 9 START: 10 MOV AX,DSEG 11 MOV DS,AX 12 13 MOV BX,OFFSE

C中当无符号数遇到符号数

unsigned int uint_1 = 1; int int_n1=-1; if( uint_1 > int_n1 ) printf("都变为有符号数\n"); else printf("都变为无符号数\n"); if( (signed)uint_1 > int_n1 ) printf("都变为有符号数\n"); else printf("都变为无符号数\n"); 执行结果为: 都变为无符号数 都变为有符号数

C语言中当无符号数遇到符号数

unsigned int uint_1 = 1; int int_n1=-1; if( uint_1 > int_n1 ) printf("都变为有符号数\n"); else printf("都变为无符号数\n"); if( (signed)uint_1 > int_n1 ) printf("都变为有符号数\n"); else printf("都变为无符号数\n"); 执行结果为: 都变为无符号数 都变为有符号数

有符号数,符号位扩展

char readbuf[64]; int data_size = (readbuf[7]<<24)|(readbuf[4]<<16)|(readbuf[5]<<8)| readbuf[6]; int data_size = (readbuf[7]<<24)+(readbuf[4]<<16)+(readbuf[5]<<8)+readbuf[6]; readbuf :  09 00 3c 16 00 00 96 00 00 00 00

如何判断一个数为无符号数还是有符号数

http://blog.csdn.net/yysdsyl/article/details/1885829 1. 利用函数重载 发信人: Enderson (小强), 信区: C_Cpp标  题: Re: 如何判断一个变量是有符号还是无符号的?发信站: 兵马俑BBS (Wed Nov  7 21:25:45 2007), 本站(bbs.xjtu.edu.cn) void f(int val){    std::cout << "singned" << std::e

解读微机原理之有符号数

在计算机中,用0代表"+",用1代表"-",所以这个时候就会遇到一个问题,比如-5用计算机写出来是1101,而13也代表的是1101,这个时候的-5和13混淆. 所以规定了二进制编码的长度,用8位表示-5,写成10000101,这种编码又称为源码表示法,另外还有反码表示法和补码表示法, 反码表示法是在原码的基础上,符号位不变,数值为各位取反:补码表示法是在反码表示法的基础上,末尾+1. 用反码表示法表示-5,11111010,补码表示法表示-5,11111011 原

有符号数的加减法 和无符号数的加减法,和,系统是如何识别有符号数和无符号数的

一.有符号数的加减法 1.符号数与无符号数的人为规定性: 一个数,是有符号数还是无符号数都是人为规定的.进行二进制运算时用无符号数或是补码运算时,结果都是正确的. 10000100+00001110 若规定为无符号数,即 132+146=146D . 若规定为符号数,则为-124+14=-110,而[-110]补=10010010.解释:10000100是 -124的补码,0001110是14的补码,在机器中运算后得出的结果是[-110]的补码.机器中的有符号数的运算一般就是补码的运算. 2.补

黑马程序员————C语言基本语法(关键字、标识符、注释符、变量、Scanf函数)

第一讲 关键字 1.什么是关键字? 1) 关键字就是C语言提供的有特殊含义的符号,也叫做“保留字” 2) C语言一共提供了32个关键字,这些关键字都被C语言赋予了特殊含义 C语言关键字 auto局部变量(自动储存) break 无条件退出程序最内层循环 case   switch 语句中选择项 char  单字节整型数据 const  定义不可更改的常量值 continue 中断本次循环,并转向下一次循环 default switch 语句中的默认选择项 do  用于构成do.....while

有符号数和无符号数负数(转)

有符号数和无符号数负数 理解有符号数和无符号数负数在计算机中如何表示呢? 这一点,你可能听过两种不同的回答. 一种是教科书,它会告诉你:计算机用"补码"表示负数.可是有关"补码"的概念一说就得一节课,这一些我们需要在第6章中用一章的篇幅讲2进制的一切.再者,用"补码"表示负数,其实一种公式,公式的作用在于告诉你,想得问题的答案,应该如何计算.却并没有告诉你为什么用这个公式就可以和答案? 另一种是一些程序员告诉你的:用二进制数的最高位表示符号,最高