Complex carbohydrates are found in whole grains, legumes, starchy vegetables, and certain fruits. Unlike simple carbs (think table sugar or fruit juice), complex carbs are long chains of sugar molecules that your body breaks down more gradually, providing steadier energy and less dramatic blood sugar swings. Here’s a closer look at the major categories and the specific foods in each.
What Makes a Carb “Complex”
All carbohydrates get converted to glucose for energy. The difference is speed. Simple carbs are small molecules (one or two sugar units) that your body absorbs quickly, causing a faster spike in blood sugar. Complex carbs are polysaccharides, long chains of glucose units that take more time to digest. That slower absorption means your blood sugar rises and falls more gently, which helps sustain energy and keeps you feeling full longer.
Whole Grains
Whole grains are one of the richest everyday sources of complex carbs. A grain counts as “whole” when it still contains all three of its original parts: the starchy interior, the germ, and the fiber-rich outer bran. According to FDA guidance, grains that qualify include wheat, oats, brown rice, barley, quinoa, bulgur, millet, rye, sorghum, teff, buckwheat, wild rice, corn (including popcorn), and amaranth.
The fiber content varies by grain. One cup of cooked whole-wheat spaghetti or pearled barley delivers about 6 grams of fiber. A cup of cooked quinoa provides around 5 grams, instant oatmeal about 4 grams, and brown rice roughly 3.5 grams. Even a single slice of whole-wheat bread adds 2 grams.
Rolled oats and quick oats both count as whole grains because steaming and flattening doesn’t remove any part of the grain. Pearled barley, on the other hand, has had some of its bran stripped away, so it’s technically not a whole grain, though it still supplies plenty of complex carbohydrates and fiber.
Legumes and Pulses
Beans, lentils, and peas are nutritional powerhouses that pack complex carbs alongside protein and fiber in one package. A half-cup serving of cooked black beans, kidney beans, chickpeas (garbanzo beans), lima beans, navy beans, pinto beans, white beans, or lentils of any color provides about 15 grams of carbohydrate, nearly all of it complex starch and fiber. Baked beans deliver the same amount in roughly a third of a cup. Split peas and black-eyed peas fall into this category too.
Legumes also stand out for their resistant starch content, a special type of complex carb discussed below. Lima beans lead the pack at 6.4 grams of resistant starch per 100-gram portion, followed by kidney beans at 3.8 grams and black beans at 2.7 grams.
Starchy Vegetables
Root vegetables and tubers are another major source of complex carbohydrates. The most common examples include:
- Potatoes: Both russet and red varieties are primarily starch. A cooked russet potato contains about 3.1 grams of resistant starch per 100 grams, and that number actually rises to 4.3 grams if you cook and then chill it (more on that below).
- Sweet potatoes: Similar starch profile to regular potatoes, with the added benefit of beta-carotene.
- Corn: Whether on the cob, as kernels, or ground into tortillas, corn is a starchy vegetable that also qualifies as a whole grain.
- Winter squash: Butternut squash, acorn squash, and pumpkin all contain meaningful amounts of complex carbs.
- Plantains: A cooked plantain provides about 2.6 grams of resistant starch per 100-gram serving.
Green, unripe bananas also fit here. They contain 2.8 grams of resistant starch per 100 grams compared to 1.8 grams in a ripe yellow banana, because the starch converts to sugar as the fruit ripens.
Resistant Starch: A Special Category
Resistant starch is a subset of complex carbohydrates that your small intestine can’t fully break down. Instead, it passes mostly intact to your colon, where it feeds beneficial gut bacteria. Those microbes then produce short-chain fatty acids, particularly butyrate, which nourish the cells lining your gut and have anti-inflammatory effects that may help regulate blood sugar and support immune function.
What’s interesting is that you can increase the resistant starch in foods you already eat. Cooking and then cooling starchy foods causes some of the starch molecules to reorganize into a form that resists digestion. A cooked russet potato has 3.1 grams of resistant starch per 100 grams, but the same potato chilled after cooking jumps to 4.3 grams. Red potatoes follow the same pattern, going from 1.7 to 2.0 grams. This applies to rice and pasta as well, so yesterday’s leftover rice delivers slightly more resistant starch than a freshly cooked batch.
Top food sources of resistant starch include lima beans (6.4 g per 100 g), barley (3.4 g), sourdough bread (3.3 g), russet potatoes cooked then chilled (4.3 g), rye bread (3.0 g), green bananas (2.8 g), and kidney beans (3.8 g).
How to Spot Complex Carbs on a Label
When you’re buying packaged foods, the ingredient list tells you more than the front of the box. Look for the word “whole” before the grain name. “Whole wheat flour” is a true whole grain. Plain “wheat flour” is not; it’s a synonym for refined white flour with the bran and germ removed. Similarly, “durum flour” is refined, while “whole durum flour” retains all parts of the grain.
The first ingredient listed is the one present in the greatest amount, so check whether a whole grain tops the list. Be cautious with terms like “multigrain” or “made with whole grains,” which don’t guarantee the product is predominantly whole grain. “Degerminated corn meal” is another red flag, meaning the germ has been stripped out during processing.
Complex Carbs vs. Simple Carbs in Practice
The practical difference comes down to how your body handles each type. Simple carbs, found in candy, soda, white bread, and most sweetened snacks, digest rapidly and create sharp blood sugar peaks followed by crashes that leave you hungry again quickly. Complex carbs are absorbed more gradually, producing smaller rises and falls in blood sugar. This steadier pattern benefits everyone, not just people managing diabetes.
Swapping refined grains for whole grains is one of the simplest changes you can make: brown rice instead of white, whole-wheat pasta instead of regular, oatmeal instead of a sugary cereal. Adding a half-cup of beans to a salad or soup bumps up both the complex carb and protein content of a meal. Keeping cooked potatoes or grains in the fridge for next-day meals gives you the added bonus of increased resistant starch without any extra effort.

