Se você nunca viu C ou como um programa funciona de verdade no baixo nível, hoje é sua chance de ver todo o básico de uma só vez!
Vou desde tipos primitivos, strings, arrays, stacks, heap, alocação de memória, structs, até minimamente entender o que está por baixo do que você chama de linguagem “orientada a objetos”.
ERRATAS
– em 00:06:50 falei errado o range de INT, o certo é de -128 a 127
– em 00:06:06 eu falei certo e deixei a correção escrita errada. 64 bits, se você não precisar, desperdiça 7 bytes
– em 00:40:54 eu falei que 255 bytes é 1/4 de 1 megabyte, mas é de 1 KILObyte.
– em 00:38:40 eu não sei como deixei passar, mas quando falo de passar o string pras funções `f1`, `f2` não está duplicando toda a string e sim a referência pra ela. Se fossem valores primitivos como `int` sim, mas array só o endereço duplica mesmo.
– em 00:57:55 quando dei copy e paste pro createPerson, eu esqueci de usar os argumentos pra fazer `person.age = age` por exemplo e ficou hardcoded. Viram?? Por isso copy e paste é perigoso, especialmente meia noite depois de estar cansado de passar 3 dias editando kkkkk`
– 00:45:20 64-bits são 8 bytes, toda hora na minha cabeça fica “4 bytes”, mas são 8
CONTEÚDO:
00:00:00 Intro
00:02:06 Strings
00:04:37 Inteiros
00:06:54 Two’s Complement
00:09:22 BigInteger
00:10:45 Pré-Float
00:13:47 Floats
00:17:27 0.1 + 0.2 != 0.3?
00:20:37 BigDecimal
00:22:17 Arrays
00:27:48 1o Hello World
00:28:37 Endereços e Referências
00:36:02 Contador de Programas e Pilha
00:41:03 Recursão
00:42:54 Ponteiros!
00:45:29 2o Hello World (com ponteiros)
00:48:52 Structs
00:49:47 3o Hello World (com struct)
00:52:25 Referências a Funções
00:55:26 4o Hello World (com callbacks)
00:59:57 5o Hello World (pseudo objetos)
01:05:05 Conclusão
LINKS:
* Integer (Wikipedia) (
* Two’s Complement (Wikipedia) (
* How numbers are encoded in JavaScript (
* FLOATING POINT VISUALLY EXPLAINED (
* What Every Computer Scientist Should Know About Floating-Point Arithmetic (What Every Computer Scientist Should Know About Floating-Point Arithmetic (oracle.com))
* IEEE-754 Floating Point Converter (IEEE-754 Floating Point Converter (h-schmidt.net))
* Number.MAX_SAFE_INTEGER (Number.MAX_SAFE_INTEGER – JavaScript | MDN (mozilla.org))
* Signed Binary/Decimal Conversion Using the Two’s Complement Representation (Signed Binary/Decimal Conversion (ubc.ca))
* C – Pointer arithmetic (C – Pointer arithmetic – Tutorialspoint)
* Why Discord is switching from Go to Rust (
Me siga nas redes sociais:
* Twitter (
* Instagram (
* Facebook (
* Podcasts (
Transcript:
Podcast:
source

Eu me sentindo um pouco estagnado por programar em C longos anos, e Akita consegue me trazer novamente aquele sentimento de empolgação.
Sua didática clareia toda lógica corriqueira de um programador engessado.
glib ajuda bastante nesse problema 6:00.
5 anos depois e eu aqui ainda re assistindo os vídeos
legal
estou no 2º periodo de ADS e to achando foda pra caralho, unico algoritimo que conhecia era o booble short que havia visto em um curso de python para analise de dados gratis da DSA (Data Science Academy), e muito foda, havia mergulhado nos seus videos anos atras e me encantei ainda mais por redes, voce é foda cara, queria uns professores que metralhassem conhecimento assim, tu joga no 1,5x e solta, mo legal hahahahahhahahahahahaha
AKITA FAZ UMA PLAYLIST DE ALGED (Algoritimos e Estruturas de Dados) PLEASEEEE SPEED SENSEI!!!! #BOTANO2X
Hoje eu entendi que eu sou burro pra caralh*
Quando você diz que é importante saber uma linguagem de baixo nível, assembly basta??😂😂😂😂😂 isto que tenho apenas 17 anos
O endereço de memória fica junto com os dados e as instruções???
Quando eu crescer quero ser como voce. Disse eu, com 40 anos, assistindo videos do Akita kkkk.
O cara que inventou o recurso de diminuir a velocidade foi em homenagem ao Akita
Rapaz demorei quase uma semana para entender kkkk o vídeo inteiro, mas quando foi tipo uou, e esse final é tipo o C orientado a objeto
Sinceramente,que vídeo sensacional.
Bom demais os vídeos do Akita. Só um detalhe . No minuto 36 do vídeo, você fala que a as funções têm duplicatas da string "Hello World". Na verdade não tem. Em C, quando se passa um array como parâmetro para uma função, apenas o endereço do array é passado (por valor), não o array completo. Sempre.
Para testar, basta alterar uma posição da string na função f2 (hello[3] = 'o';) e depois mandar imprimi-la na função main (após a chamada de f1). Você verá que a string criada em main foi alterada pela função f2. De modo que é a mesma string.
Os endereços que você está imprimindo nas funções f1 e f2 são os endereços dos ponteiros para o array, não o endereço do próprio array.
34:00 preciso desse máximo teórico pra alimentar o Chrome com RAM.
Eu aprendi Assembler com o Famoso Zilog Z80 na faculdade, lá pelos anos 2000, muita emoção na época existia a profissão de escovador de bit, bons momentos aqueles
Eu pagaria caro pra ter o Akita como professor na faculdade
Galera, sugestão de ouro para vocês. "Computer Science as a programmer's perspective", conhecido como CS:APP.
É um livro fenomenal sobre ciência da computação, mas com um olhar voltado para programadores. Leiam rapidamente o capítulo 1 (Visão geral) e estudem o capítulo 2(Onde começa de fato). Depois venham rever esse vídeo, muita coisa fará ainda mais sentido.
Só tem em inglês, mas com tanta ferramentas que nós temos nos dias de hoje, eu poderia dizer basicamente: "se virem". Mas vou dar uma colher de chá, "IA tá aí pra isso" caso precisem de traduzir algum trecho do livro ou precisar de exemplos e demonstrações.
1 hora mais bem gasta da minha vida
Por que o YouTube nunca me mostrou seu canal antes? Pqp que aula insana! Valeu
Realmente resumão da porra heueheh
19:20 eu tive problemas em um programa onde fiz um loop onde um índice variava de 0 a 10 de 0,1 em 0,1. Não sei por que, o programa eu não lembro para que era, mas lembro que foi a primeira vez que me deparei com o fato que o computador não armazena 0,1 exatamente, e para fazer a comparação eu tinha que testar algo como 10 – i < 0.00001. Mas nunca contei para ver se o laço realmente era executado apenas 100 vezes.
Não me pergunte o que eu estava fazendo no turbo pascal dos anos 1990. Nem eu lembro.
Fabio Akita gosto muito dos seus vídeos, você é um excelente professor, dá gosto de ouvir suas explicações, que são claras e objetivas. O que mais gosto nos seus vídeos é que você explica com calma e em detalhes, dificilmente fico com dúvidas depois que assisto seus vídeos. Você já pensou em lançar um curso de programação ou curso relacionado a tecnlogia?
Melhor aula da minha vida, cada dia a programação faz mais sentido. Sou dev a 3~4 anos, e sempre tive dúvidas e muitos porquês que nunca foram explicados, hoje consigo achar essas respostas estudando e nos vídeos incríveis do Akita. OBRIGADO DEMAIS CARA
Deus te abençoe.
Bom dia!!! você tem vários vídeos sobre vários temas. Como posso procurar os videos por ordem e por tema?
assistido
É por isso que estou tentando aprender .c por que a MICROSOFIT usou para fazer o Windows (segundo a copilot)
Eu quero aprender por curiosidade, mas é bastante complexa
Vou ter assistir de novo
caramba não intende exatamente nada, mas eu não vou desistir
Tinha que ser oriental 👏🏻
obg akita
Sensacional!! Estou aprendendo por conta. e esse vídeo conectou vários pontos de dúvidas!!
Muito obrigado.
nossa, c++ é lindo
não entendi muito bem, mas achei do caralho, obrigado Fabio
Caramba, como fui assistir isso só agora. Que dá ora.
Assistindo em 16/07/2025 na velocidade 0.75 😁😅
Senhoras e senhores, simplesmente Fábio Akita.
Video foda
Eu comecei ano passado a estudar python, não gostei e fui estudar Csharp. Estava avançado em Csharp mas tinha muita coisa que eu não fazia ideia de como funcionavam e pq funcionava daquela forma. Recentemente comecei a estudar C++ por conta propria e parece que a medida em que eu vou aprendendo os mesmo conceitos que eu aprendi em Csharp só que em c++ um mundo novo vai se abrindo na minha mente, cada assunto eu to entendo como funciona e pq funciona. Realmente o baixo/media nivel é muito bom, não pode ser deixado de lado.
professor com todo o respeito mas que porra é essa
o Lambda então é tipo um void?
Meudeus, tudo para mim é novidade. Mas eu vou me comopremeter a aprender, quem sabe um dia eu não estou dando video aula,hoje eu tenho duvida, mas espero daqui a uns tempos ensinar outras pessoas pois irei doominar programação
Dois períodos da faculdade de BCC na UFU, e esse vídeo ainda foi mais longe, pois lá nem falaram de ponteiro pra função, descobri q existia no sumário do livro The C programming language kkkkk, o Cara é fera, vai muito além do que você imagina
Eu só queria saber qual o tempo de execução de máquina ao fazer operações matemáticas.
Tipo; quantos ciclos de máquina a CPU faz a soma de 20+15.?
ALGUÉM SABERIA ME DIZER SE (10+15=) É CALCULADO EM UM CICLO, OU PRA CADA BINÁRIO CUSTA 1 CICLO.
Pois preciso o retorno EXATO de uma certa função, que nela há diversas operações matemáticas. E isso atrasa o retorno dentro de uma INTERRUPÇÃO auxiliar.
Preciso saber EXATAMENTE O TEMPO DOS CÁLCULOS DESSA FUNÇÃO. É um sistema tipo RTOS mas em C++ escrito por mim mesmo.
Quantos ciclos de clock a CPU precisa pra fazer UMA SOMA, OU UMA DIVISÃO de variáveis int.?????🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏
POR FAVOR, FAÇA UM VÍDEO EXPLICANDO O TEMPO DE MÁQUINA EM OPERAÇÕES ARITMÉTICAS👍👍👍🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏☕️☕️💰
Brutal
O complementar de um binário é o simétrico dele após o fim dos positivos e somando mais um por causa da existência do 0. Depois disso todos acima são os negativos até o limite que os de 8, 16, 32 ou 64 bits permitem.
No caso de 8 bits, os positivos vão só até o 127 que é o 0111 1111 mais o 0 (zero não é negativo), portanto um total de 128 números não negativos, por isso o simétrico acima desse ponto é também 128 números que começam todos com 1 e portanto são os negativos indo até o equivalente ao positivo 255 que é 1111 1111 e é o -128. Por isso você inverte todos os bits e depois por existir o 0 tem que somar um (no byte todo, é somar, não trocar o último bit), faça isso no caso de ter os números em binários, mas se você tem em mãos os valores decimais é só subtrair o valor de 256 e aí converter o resultado em binário, assim o complementar de 5 é 256 – 5 = 251 cujo binário é 1111 1011 para conseguir um binário a partir de um decimal faça a fatoração por 2 anotando 1 quando tem resto e 0 quando não e a ordem é anotar 1 ou 0 da direita para a esquerda que você tem o binário correto, não inverta. Melhor usar uma caluladora com essa função de conversão, você encontra para celular, a Hyper Calc é a mais completa que conheço, na conversão por fatoração é fácil se enganar. Em automação ainda se tem que mexer com binário de 8 ou 16 bits testando sinal de sensor, na computação atual você mexe no máximo com os hexa.