Tipos sin firmar de C++

Tipo sin firmar firmado y sin firmar tipo firmado

Los tipos con signo pueden representar 0, números positivos y números negativos, mientras que los tipos sin signo solo pueden representar números mayores o iguales a 0.

conversión de tipo

El rango de valores que el tipo puede representar determina el proceso de conversión.

  • Cuando asignamos un valor a un tipo sin signo que está fuera del rango que representa, el resultado es el resto del valor inicial módulo del número total de valores representados por el tipo sin signo.
	unsigned u = 10;
	int i = -42;
	//u+i,相加前首先把整数-43转换成无符号数(把负数转换成无符号数类似于直接给无符号数赋一个负值)
	//因为int是32位,因此它能表示数值总数位2^32,所以-42转换为无符号数=(-42+2^32)=4294967254
	// 4294967254+19=4294967264 即输出结果
	cout<<u+i<<endl;
	unsigned u1 = 42, u2 = 10;
	cout<<u1-u2<<endl;
	cout<<u2-u1<<endl;

Caso de error

// 由于无符号数永远不会小于0,因此这是个死循环
for(unsigned i = 10;i>=0;i--)
cout<<i<<endl;

Supongo que te gusta

Origin blog.csdn.net/weixin_47020721/article/details/132801940
Recomendado
Clasificación