c++해결 인쇄 불가 uint 8질문
일원 연산 자 사용+(와-연산 자 대응)
테스트 코드 는 다음 과 같 습 니 다.
#include <cstdint>
#include <iostream>
#include <typeinfo>
int main()
{
std::uint8_t uint8_num = 10;
std::cout << "uint8_t num is " << uint8_num << std::endl; //
std::cout << "after cast to unsigned, uint8_t num is " << unsigned(uint8_num) << std::endl; //
std::cout << "with a unary + operator, uint8_t num is " << +uint8_num << std::endl; //
std::cout << "type of '+uint8_num' is " << typeid(+uint8_num).name() << std::endl;
return 0;
}
실행 결 과 는 다음 과 같다.보 이 는+연산 자 를 사용 하 는 원리 도 유형 변환(uint 8t 에서 int 로 전환)
추가 지식:C 언어 printf 다양한 데이터 형식 인쇄 방법(u8/s8/u16/s16.../u64/double/float)(전)
먼저 u8,s8 등 데이터 형식의 정 의 를 알 아야 합 니 다.
typedef signed char s8;
typedef unsigned char u8;
typedef signed short s16;
typedef unsigned short u16;
typedef signed int s32;
typedef unsigned int u32;
typedef signed long long s64;
typedef unsigned long long u64;
시스템 구조 와 관련 된,include/linux/type.h 파일 에 정의:
/* bsd */
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
/* sysv */
typedef unsigned char unchar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;
#ifndef __BIT_TYPES_DEFINED__
#define __BIT_TYPES_DEFINED__
typedef __u8 u_int8_t;
typedef __s8 int8_t;
typedef __u16 u_int16_t;
typedef __s16 int16_t;
typedef __u32 u_int32_t;
typedef __s32 int32_t;
#endif /* !(__BIT_TYPES_DEFINED__) */
typedef __u8 uint8_t;
typedef __u16 uint16_t;
typedef __u32 uint32_t;
#if defined(__GNUC__)
typedef __u64 uint64_t;
typedef __u64 u_int64_t;
typedef __s64 int64_t;
각종 데이터 형식의 인쇄 방식 에 대해 다음 과 같이 요약 한다.데이터 형식
인쇄 형식
u8
%d
s8
%d
u16
%d or %hu
s16
%d or %hd
u32
%u
s32
%d
u64
%llu
s64
%lld
int
%d
unsigned int
%u
short int
%d or %hd
long
%ld
unsigned long
%lu
long long
%lld
unsigned long long
%llu
char
%c
char *
%s
bool (#define stdbool.h)
%d
unsigned int/int---16 진수
%0x
unsigned long/long--->16 진수
%0lx
long long/unsigned long--->16 진법
%0llx
unsigned int/int--->8 진법
%0o
unsigned long/long--->8 진법
%0lo
long long/unsigned long--->8 진법
%0llo
float
%f
double
%f or %lf
과학 기술 유형(double 유형 으로 전환 해 야 합 니 다)
%e
출력 필드 너비 제한
%x.yf(x:정수 길이,y:소수점 길이)
문 제 를 풀 려 면 Liux kernel 에서 도 bool 을 사용 하여 변 수 를 정의 합 니 다.code 를 보고 정 의 는 다음 과 같 습 니 다.
typedef _Bool bool;
그러나 구체 적 인 정의 가 어디 에 있 는 지 는 찾 지 못 했다.
다음은 stdbool.h 의 source code 입 니 다.
#define _STDBOOL_H
#ifndef __cplusplus
#define bool _Bool
#define true 1
#define false 0
#else /* __cplusplus */
/* Supporting _Bool in C++ is a GCC extension. */
#define _Bool bool
#if __cplusplus < 201103L
/* Defining these macros in C++98 is a GCC extension. */
#define bool bool
#define false false
#define true true
#endif
#endif /* __cplusplus */
/* Signal that all the definitions are present. */
#define __bool_true_false_are_defined 1
#endif /* stdbool.h */
Liux kernel bool type 도 대충 설명 했다.이 c++해결 은 uint 8 을 인쇄 할 수 없습니다.t 유형 변수의 문 제 는 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 에 게 참고 가 되 고 저희 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
hdu 1717 소수 화 점수 2 (수학)소수 화 점수 2 레이 는 수학 시간 에 선생님 의 말씀 을 듣 고 모든 소수 가 점수 로 표시 되 는 형식 이 라 고 말 했다. 그 는 녹 기 시 작 했 고 곧 완성 되 었 다. 그러나 그 는 또 하나의 문 제 를...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.